一、XMLHttpRequest 对象 (XHR)
XMLHttpRequest 对象用于在后台与服务器交换数据,有了这个对象,我们可以:
在不重新加载页面的情况下更新网页;
在页面已加载后从服务器请求数据;
在页面已加载后从服务器接收数据;
在后台向服务器发送数据。
二、创建XHR
//创建XMLHttpRequest对象 function createXMLHttpRequest(){ var xmlHttpRequest; if(window.XMLHttpRequest){ //IE8+, FF, Chrome等浏览器内置XHR对象,可以直接创建 xmlHttpRequest = new XMLHttpRequest(); }else if(window.ActiveXObject){ //IE7和之前版本需要通过ActiveXObject创建XHR xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP"); }else{ //其他不支持XHR的浏览器 } return xmlHttpRequest; }
三、发送请求
在Javascrpt中使用XHR的以下方法发送请求:
/** * 初始化XHR请求 * @param method 请求的类型(get/post) * @param url 请求的url * @param isAsync 是否使用异步请求 * @param username 对于要求认证的服务器,可以提供用户名 * @param password 对于要求认证的服务器,可以提供密码 */ open(method, url[, isAsync=true[, username=null[, password=null]]]); /** * 发送请求 * @param data 作为请求体的数据 */ send([data=null]);
例:
var xhr = createXMLHttpRequest(); //使用同步方式发送GET请求 xhr.open("get", "http://sample.org/test", false); xhr.send(null); //使用异步方式发送POST请求并模拟表单提交 xhr.open("post", "http://sample.org/test", true); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.send("var1=val1&var2=val2");
四、注册回调函数
xhr.onreadystatechange = function(){ // Do something... }
五、常用属性
1. readyState
HTTP 请求的状态.当一个 XMLHttpRequest 初次创建时,这个属性的值从 0 开始,直到接收到完整的 HTTP 响应,这个值增加到 4。
5 个状态中每一个都有一个相关联的非正式的名称,下表列出了状态、名称和含义
状态 | 名称 | 描述 |
0 | UNSENT | 初始化状态。XMLHttpRequest 对象已创建或已被 abort() 方法重置。 |
1 | OPENED | open() 方法已调用,但是 send() 方法未调用。请求还没有被发送。 |
2 | HEADERS_RECEIVED | Send() 方法已调用,HTTP 请求已发送到 Web 服务器。未接收到响应。 |
3 | LOADING | 所有响应头部都已经接收到。响应体开始接收但未完成。 |
4 | DONE | HTTP 响应已经完全接收。 |
readyState 的值不会递减,除非当一个请求在处理过程中的时候调用了 abort() 或 open() 方法。每次这个属性的值增加的时候,都会触发 readystatechange 事件。
2. responseText
这个responseText属性包含客户端接收到的HTTP响应的文本内容。当readyState值为0、1或2时,responseText包含一个空字符串。当readyState值为3(正在接收)时,响应中包含客户端还未完成的响应信息。当readyState为4(已加载)时,该responseText包含完整的响应信息。
3. responseXML
如果响应的内容是"text/xml"或者"application/xml",这个属性将保存包含响应数据的XML DOM文档(Document对象)。
4. status
响应的http状态码。
5. statusText
这个属性用名称而不是数字指定了请求的 HTTP 的状态代码。也就是说,当状态为 200 的时候它是 "OK",当状态为 404 的时候它是 "Not Found"。
六、Ajax示例
var xhr = createXMLHttpRequest(); xhr.onreadystatechange = function(){ if (xhr.readyState==4) { if (xhr.status==200) { //do something } } } xhr.open("get", "http://sample.org/test", true); xhr.send(null);
七、其他方法
/** * 取消请求并关闭连接,XHR对象重置为readyState为0的状态。 */ abort() /** * 向一个打开但未发送的请求设置或添加一个HTTP请求头信息。 * @param headerName 需要设置或添加的头信息的名字(大小写不敏感) * @param value 设置或添加的头信息的值 */ setRequestHeader(headerName, value) /** * 取得一个包含所有响应的header信息的长字符串,如果 readyState 小于 3,这个方法返回 null。 */ getAllResponseHeaders() /** * 取得指定的HTTP响应头信息的值。 * @param headerName 需要从响应中获得的头信息的名字(大小写不敏感) */ getResponseHeader(headerName)
相关推荐
这个"JavaScript与Ajax开发课程大作业"可能涵盖了从基础概念到高级技巧的全方位学习内容,旨在帮助学生深入理解和掌握这两种技术。 JavaScript是一种在浏览器端运行的脚本语言,它允许开发者动态更新网页内容,而...
JavaScript与Ajax是Web开发中的重要技术,用于创建交互式的网页应用。这个压缩包"JavaScript与Ajax开发实验和课程设计HIS系统源码.zip"显然包含了关于这两种技术的实践项目和可能的教学材料,特别是针对HIS(Health ...
Ajax,全称Asynchronous JavaScript and XML(异步JavaScript和XML),是一种创建动态网页的技术,允许在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页内容。在"JavaScript语言与Ajax应用(第二版)...
标签"yui_aj ajax ajax_java javascript javascript_yui_ajax"进一步指出了这个压缩包的内容焦点,包括YUI的AJAX组件、JavaScript与AJAX的结合,以及可能涉及到的Java与JavaScript的交互。 在压缩包的文件名称列表...
五、Ajax与XML 尽管Ajax名称中包含“XML”,但实际上,数据传输格式不限于XML,还包括JSON、纯文本等多种形式。JSON由于其简洁性和易读性,已经成为现代Web应用中最常用的Ajax数据交换格式。 六、跨域问题与解决 在...
### JavaScript与AJAX基础知识 #### 一、编程基础:JavaScript概览 **1. 将Web带入下一个层次** 在《JavaScript and AJAX For Dummies》的第一章中,作者介绍了JavaScript如何改变了网页开发的方式,使静态网页...
JavaScript 和 AJAX 是 web 开发中的两个重要概念,它们在创建交互式、动态和实时的网页应用中发挥着关键作用。JavaScript 是一种轻量级的解释型编程语言,主要用于客户端的网页脚本,而 AJAX(Asynchronous ...
通过 AJAX,开发者可以在不刷新整个页面的情况下与服务器交换数据并更新部分网页内容。这种技术极大地提高了用户体验,因为它允许网页在后台加载新数据,而不会打断用户的交互。虽然名字中包含 XML,但现代 AJAX ...
《2008新书_JavaScript and Ajax Tools for Great Web Experiences》一书,主要聚焦于JavaScript与Ajax工具在创建卓越网络体验中的应用。本书不仅深入探讨了Dojo框架,一个强大的JavaScript库,用于构建高性能、高...
根据提供的文件信息,我们可以总结出以下关于JavaScript与Ajax的相关知识点: ### 一、JavaScript简介 - **快速且简便的学习方式**:文档强调了通过w3Schools提供的资源,用户能够以一种快速且简便的方式学习...
AJAX 的核心是 XMLHttpRequest 对象,它允许 JavaScript 在后台与服务器交换数据并更新部分网页,而无需重新加载整个页面。这种技术显著提升了网页的响应速度和用户体验。 AJAX 的基本流程包括创建 XMLHttpRequest ...
AJAX(Asynchronous JavaScript and XML)则是一种使用JavaScript进行异步数据交换的技术,让网页可以在不刷新整个页面的情况下与服务器通信。这提升了用户体验,因为用户无需等待整个页面加载,只需等待新数据的...
其次,AJAX技术使得网页可以在不刷新整个页面的情况下与服务器交换数据并更新部分网页内容。这一特性极大地提升了用户体验。书中会讲解AJAX的工作原理,如何创建XMLHttpRequest对象,发送异步请求,以及解析响应数据...
Ajax(Asynchronous JavaScript and XML)是一种技术,它允许网页在不重新加载的情况下与服务器交换数据并更新部分网页。 #### Ajax 的核心 - `XMLHttpRequest` 对象是实现 Ajax 通信的主要接口。 - `fetch` API 在...
《挑战JavaScript & Ajax应用开发》内容简介:Ajax是当今网络应用开发的主流技术,JavaScript是其核心,《挑战JavaScript & Ajax应用开发》从企业开发的实际需求出发,通过范例全方位介绍这2种Web开发技术及其综合...
三、JavaScript与AJAX的结合 JavaScript是实现AJAX的关键,它负责创建XMLHttpRequest对象、发送请求、处理响应。以下是一个简单的AJAX GET请求示例: ```javascript var xhr = new XMLHttpRequest(); xhr.open('GET...
**Ajax与PHP基础教程概述** 本教程主要针对初学者,旨在深入浅出地介绍Ajax(Asynchronous JavaScript and XML)和PHP(Hypertext Preprocessor)这两种技术的基础知识及其结合使用的方式。Ajax是一种在无需刷新...
**Ajax(Asynchronous JavaScript and XML)**是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使网页实现异步更新。这种技术的核心在于JavaScript,允许...
JavaScript、AJAX(异步JavaScript和XML)与.NET框架结合使用,可以构建高度交互性和响应式的Web应用程序。AJAX允许在不刷新整个页面的情况下,从服务器获取数据并更新页面的特定部分,从而提供了更好的用户体验。...
JavaScript 和 AJAX 在网页开发中扮演着重要角色,尤其在实现动态数据交互方面。在这个"javascript+Ajax实现词频统计"的项目中,我们将探讨如何利用这两种技术来创建一个实时更新的词频统计应用。 首先,JavaScript...