Ajax中自定义发送请求和处理响应对象

Ajax中自定义发送请求和处理响应对象

JavaScript内置一个称为XMLHttpRequest的对象,用于发起Ajax请求并处理Ajax响应。这个对象非常复杂,包含许多支持Ajax的特性和方法。

readyState:请求的状态代码【0(未开始)、1(开启)、2(已传送)、3(接收中)、4(已载入)】

status:HTTP的请求状态代码【404(找不到文件)、200(OK)】

onreadystatechange:请求状态改变时会被调用的函数引用,这个函数事件处理器就是处理响应的地方。

responseText:由服务器返回的响应数据,格式为纯文本字符串。

responseXML:由服务器返回的响应数据,格式为XML节点树构成的对象。

abort():取消请求。

open():准备请求,指定请求的类型、URL和其他细节。

send():传送请求,交给服务器处理。

即使是最基本的Ajax请求,也需要很多javascript代码,因为部分浏览器的不一致。

var request=null;
if(window.XMLHttpRequest){
	try{
		request=new XMLHttpRequest();
	}catch(e){
		request=null;
	}
}else if(window.ActiveXObject){
	try{
		request=new ActiveXObject("Msxm12.XMLHTTP");
	}catch(e){
		try{
			request=new ActiveXObject("Microsoft.XMLHTTP");
		}catch(e){
			request=null;
		}
	}
}

创建XMLHttpRequest对象后,换成设定处理请求的函数,然后开启请求。

request.onreadystatechange=handler;  //服务器响应我们的请求时调用的自定义函数

request.open(type,url,true);    //开启请求,让请求准备发送,同时决定为GET或POST,true决定是异步

GET的话:;request.open("GET","blog.xml",true);

request.send(null);

POST的话:

request.open("POST","addblogentry.php",true);

request.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");

request.send("09/26/2008&These dreams just....&cudeapart.png");

自定义的AjaxRequest对象减轻了制作Ajax请求的痛苦过程:

特性

request:底层的XMLHttpRequest对象存储于这个特性里。

方法

getReadyState();

getStatus();

getResponseText();

getResponseXML();

send();             //AjaxRequest中真正的劳动者,它处理开启和传送请求的细节工作

AjaxRequest.prototype.send=function(type,url,handler,postDataType,postData){
	if(this.request!=null){
		//kill the previous request
		this.request.abort();

		try{
			this.request.onreadystatechange=handler;   //自定义的处理器函数
			this.request.open(type,url,true);
			if(type.toLowerCase()=="get"){     //发送get请求
				this.request.send(null);
			}else{                      //发送post请求
				this.request.setRequestHeader("Content-Type",postDataType);
				this.request.send(postData);
			}
		}catch(e){
			alert("Ajax error communicating with the server.\n"+"Details:"+e);
		}
	}
}

var ajaxReq=new AjaxRequest();
ajaxReq.send("GET","movies.xml",handleRequest);
时间: 2024-10-24 11:01:12

Ajax中自定义发送请求和处理响应对象的相关文章

ajax中,发送请求的类型

1.post请求 在一下情况,使用post: 无法使用缓存文件(更新服务器上的文件或数据库); 向服务器发送大量数据(POST 没有数据量限制); 发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可; eg: xmlhttp.open("POST","demo_post.asp",true); xmlhttp.send(); post简单例子 如果需要像 HTML 表单那样 POST 数据,请使用 setRequestHeader() 来添加 HTTP

[IBM]掌握Ajax,Ajax中的高级请求和响应

掌握 Ajax, Ajax 中的高级请求和响应 http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro1.html http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro2/ http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro3/ dynaTrace Ajax:前端性能分析利器 http://www.ibm.com/developerwo

AJAX向服务器发送请求

原生的: 1.>:GET请求 $(function () { $("#btnGetDate").click(function () { //开始通过AJAX向服务器发送请求. var xhr; if (XMLHttpRequest) {//表示用户使用的高版本IE,谷歌,狐火等浏览器 xhr = new XMLHttpRequest(); } else {// 低IE xhr=new ActiveXObject("Microsoft.XMLHTTP"); }

【03】AJAX 向服务器发送请求

AJAX 向服务器发送请求 创建 XMLHttpRequest 对象后,就可以向服务器发送请求了. XMLHttpRequest 对象的 open() 方法和 send() 方法用来向服务器发送请求. 注意:AJAX 向服务器发送的是 http 请求,与我们浏览网页时发送的 http 请求一样.我们可以右键查看当前网页的源代码,由很多 HTML.CSS和JavaScript 组成,如果我们使用 AJAX 请求当前的 URL ,返回的内容是一样的.(魔芋:也就是说ajax发送的,和我们平时输入网址

Ajax--Ajax基于原生javascript:创建Ajax对象、链接服务器、发送请求、接受响应结果

我的笔记:Ajax概述 一.Ajax应用小例子(get提交) register_get.html (客户端) 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 <style> 7 .tips{ 8 color:red; 9 } 10 </

js学习总结----ajax中的http请求方式及同步编程和异步编程

一.请求方式 var xhr = createXHR(); xhr.open("get","/getList?num=12",true); xhr.open("post","/getList",true); xhr.send('{"name":"zhangsan","age":7}') //HTTP METHOD;客户端向服务器端发送请求的方式 //以下的请求方式不管

Http消息头中常用的请求头和响应头

作为Web开发对常用http的请求头和响应头熟悉了解一下还是很有必要的.比如请求头中Content-type指定了请求的内容,若类型是application/x-www-form-urlencoded,就可以调用reqeust的获取参数方法取到内容,若是其它都需要调用获取流的方法获取.又比如响应头X-Frame-Options 的设置直接决定了你的页面是否能被其它非同源的ifream嵌入,而这个设置可以是在html页面中,也可以是框架或代码的响应头设置中,也可以是在http服务器(nginx或t

AJAX向服务器发送请求并返回json数据

这里想实现的功能大概是这样:类似注册时,用户名已经被注册了的情况.当用户失去焦点的时候利用AJAX发送请求到服务器端,服务器端进行数据库查询,如果有相同的用户名则页面提示用户名已被注册了,不能用,否则就通过注册. 这里用的是Jquery AJAX以及SSH框架,下面是我的实现步骤: 先引入struts-json的jar包 1.注册页面中添加JS方法调用 <span id="tip" style="color:red"></span> <

Django视图函数之request请求与response响应对象

官方文档: https://docs.djangoproject.com/en/1.11/ref/request-response/ 视图中的request请求对象: 当请求页面时,Django创建一个HttpRequest包含有关请求的元数据的对象. 常用的值和操作: ·         request.method      #获取请求属性 ·         request.GET         #获取GET请求的参数字典信息,用.get()取值 ·         request.PO