下面这张图,说明了XMLHttpRequest对象与Server的标准交互过程。
下面是几个XMLHttpRequest的标准方法的详细说明,如果对HTTP协议熟悉的话,应该是很容易明白的:
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请求方式是不会携带请求体的。
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。
- 大小: 66.9 KB
分享到:
相关推荐
本压缩包文件"创建XMLHttpRequest对象的方法.rar"包含了一份关于如何创建XMLHttpRequest对象的详细教程,其核心内容可以从以下几个方面来理解: 1. **XMLHttpRequest对象的创建** 在JavaScript中,XMLHttpRequest...
### XMLHTTPRequest属性与方法 #### 一、XMLHTTPRequest概述 **XMLHTTPRequest** 是一套重要的 API,它允许在浏览器端利用 JavaScript、VbScript 或 Jscript 等脚本语言通过 HTTP 协议发送请求和接收 XML 及其他...
XMLHttpRequest(XHR)是JavaScript中一个非常重要的对象,...总的来说,XMLHttpRequest提供了丰富的属性和方法,使我们能够构建功能强大的AJAX应用,实现网页的无刷新交互。理解和掌握这些知识对于前端开发至关重要。
在这篇深度剖析中,我们将揭开XMLHttpRequest对象的神秘面纱,探讨其工作原理、常用方法和实际应用。 XMLHttpRequest对象是Ajax技术的基础,它允许JavaScript在页面不刷新的情况下与服务器进行通信。创建一个...
- 0(UNSENT):XMLHttpRequest对象已创建,但尚未调用open()方法。 - 1(OPENED):open()方法已被调用。 - 2(HEADERS_RECEIVED):send()方法已被调用,且头部信息已接收。 - 3(LOADING):数据正在被接收。...
XMLHttpRequest对象是JavaScript内置的对象,它具有以下主要功能: 1. **创建对象**:通过`var xhr = new XMLHttpRequest();`创建一个新的XMLHttpRequest实例。 2. **打开连接**:调用`xhr.open('method', 'url', ...
本文档将详细介绍XMLHttpRequest对象的基本知识、属性和方法,并演示如何使用它来进行简单的请求与处理。 #### 二、XMLHttpRequest对象的历史与现状 XMLHttpRequest对象最初由微软公司在Internet Explorer中引入,...
XMLHttpRequest 对象暴露各种属性、方法和事件以便于脚本处理和控制 HTTP 请求与响应。 1. readyState 属性 readyState 属性描述 XMLHttpRequest 对象的当前状态,当 XMLHttpRequest 对象把一个 HTTP 请求发送到...
XMLHttpRequest对象还提供了错误处理机制,如onerror和ontimeout事件,以及getAllResponseHeaders()和getResponseHeader()方法,用于获取服务器响应的头信息。 在实际应用中,开发者通常会结合DOM操作和JavaScript...
XMLHttpRequest对象的常用属性和方法包括: 1. 发起请求和接收响应: - `open(method, url, async, [user], [password])`:初始化一个请求,其中`method`参数是请求类型(如GET、POST、PUT),`url`是请求的URL...
XMLHttpRequest对象的主要属性和方法包括: 1. readyState属性:表示请求的状态,共有5个值,分别对应请求的不同阶段,从0(未初始化)到4(完成)。当状态改变时,会触发onreadystatechange事件。 2. ...
**XMLHttpRequest对象属性** 1. **onreadystatechange**: 当请求状态改变时,这个属性所关联的函数会被调用。你可以在此处设置一个回调函数来处理服务器的响应。 2. **readyState**: 描述请求的状态,共有5个可能...
**readyState属性**:表示XMLHttpRequest对象的当前状态,从“未初始化”到“已加载”,共五个阶段,分别是0(未初始化)、1(打开)、2(发送)、3(接收中)、4(完成)。这些状态的变化是异步操作的关键,开发者...
XMLHttpRequest 对象的行为在不同浏览器上也有所区别,但是大多数方法和属性都得到了广泛的支持。当前,Firefox、Safari、Opera、Konqueror 和 Internet Explorer 都以类似的方式实现了 XMLHttpRequest 对象的行为。...
下面我们将深入探讨XMLHttpRequest对象的主要属性和方法。 **1. 创建XMLHttpRequest对象** 创建XMLHttpRequest对象有两种方式,一种是针对Internet Explorer浏览器,使用ActiveXObject: ```javascript ...
1. 初始化:创建XMLHttpRequest对象,然后通过`open()`方法设置请求的类型(GET、POST等)、URL和是否异步执行。 2. 发送请求:调用`send()`方法发送请求。如果是GET请求,参数通常为空;对于POST请求,参数可以作为...
2. **XMLHttpRequest对象**:这是AJAX的基础,它提供了一个在后台与服务器进行通信的API。JavaScript通过XMLHttpRequest对象可以异步地发送GET或POST请求,并获取服务器的响应数据。 3. **DOM(Document Object ...