您的位置:首页 > 理论基础 > 计算机网络

AJAX入门 之 XMLHttpRequest对象的属性(一)

2016-07-06 17:58 465 查看
Ajax的核心技术包括

XMLHttpRequest对象:用来实现异步通讯的组件对象,是Ajax的核心技术
Javascript:Ajax的编程脚本,可以通过Javascript来操作Ajax
Dom(Document Object Model)模型:Javascript通过Dom跟页面进行交互
XML:可扩展标记语言,用来封装交互的数据
XMLHttpRequest对象的属性

abort()

停止当前请求

string getAllResponseHeaders()

将HTTP此次请求的所有响应首部作为键/值对返回,要注意的是返回值是个string

string getResponseHeader("header")

返回响应首部中的header对应值

void open(string method, string url, boolean asynch, string username, string password):

该方法会建立对服务器的调用,但并不会真正发送,只是准备,前两个参数是必须的,分别代表HTTP请求方法和所调用资源的URL,第三个是一个 boolean值,默认true,代表请求异步,如果为false,前端浏览器对于用户响应的处理就会等待,直到从服务器返回响应为止。异步调用是AJAX的优势之一。

send(content)

这个方法才会真正发送请求,如果上面的第三个参数设置为ture,那么调用完后会立即返回,如果为false就会直到接收到响应才返回,但这并不会影响回调函数的多次执行,因为浏览器后台也是多线程的,同步只会阻止前端页面的响应。可选的content参数可以是一个DOM对象,一个输入流,一个字符串。这个content会作为请求体的一部分发送给Server,一般只在以POST方式下才使用,因为GET请求方式是不会携带请求体的。

xmlhttprequest.send() ;

send(string); // string 仅用于 POST 请求

setRequestHeader("header", "value")

此方法必须在open后面调用,作用是设置在HTTP请求消息中设置一个首部key/value对。GET请求方式下一般不用设置,但是在POST方式下需要设置一个Content-Type信息:

XMLHttpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

如果需要利用ajax上传文件,则应该这样设置:

XMLHttpRequest.setRequestHeader("Content-Type", "mulipart/form-data");

除了上述方法,XMLHttpRequest对象还提供了一些属性,处理AJAX响应的时候将会大量使用到它们。

onreadystatechange

这个属性关联一个JavaScript回调函数,每当readyState属性值改变时,就会调用一次。

readyState

HTTP请求的状态,只能有5个可选的值, 0 = uninitialized, 1 = loading, 2 = loaded, 3 = interactive, and 4 = complete.最重要的是readyState==4, 这时请求响应才真正完成,可以进行数据的操作。例如判断HTTP响应码是否是200。readyState值每变化一次,回调函数就被调用一次,但不可依 据调用次数和顺序来编码,因为不同浏览器实现不一样,有时候IE上会执行6次,有时候某个状态码会执行多次。所以一般只要在代码里面加上
if(readyState==4){}在代码块中实现自己的逻辑。注意:XMLHttpRequest对象刚new出来的时候,readyState的值是0。

responseText

该属性代表的是从Server端返回的一个string格式的响应。

responseXML

代表从Server端传回的XML格式的数据,可以直接被当作DOM对象使用。

status

这个在HTTP响应中的响应码。200代表响应成功,所以一般在status==200才进行响应数据的操作,如果不是200,那说明HTTP响应不正常,也就不用处理。

statusText

HTTP协议中跟在响应码后面的相应说明串。例如200 后面就会跟着OK。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息