XMLHttpRequest 提供客户端同http服务器通讯的协议
一:创建
IE : http_request = new ActiveXObject("Msxml2.XMLHTTP");
http_request = new ActiveXObject("Microsoft.XMLHTTP");
非IE: http_request = new XMLHttpRequest();
二:onreadystatechange
指定当readyState属性改变时的事件处理句柄
语法
http_request .onreadystatechange = funcMyHandler;
三:readyState
返回XMLHTTP请求的当前状态
变量,此属性只读,状态用长度为4的整型表示.定义如下:
0 (未初始化) 对象已建立,但是尚未初始化(尚未调用open方法)
1 (初始化) 对象已建立,尚未调用send方法
2 (发送数据) send方法已调用,但是当前的状态及http头未知
3 (数据传送中) 已接收部分数据,因为响应及http头不全,这时通过responseBody和responseText获取部分数据会出现错误,
4 (完成) 数据接收完毕,此时可以通过通过responseBody和responseText获取完整的回应数据
四:responseBody
返回某一格式的服务器响应数据
五:responseStream
以Ado Stream对象的形式返回响应信
六:responseText
将响应信息作为字符串返回
备注
变量,此属性只读,将响应信息作为字符串返回。
XMLHTTP尝试将响应信息解码为Unicode字符串,XMLHTTP默认将响应数据的编码定为UTF-8,如果服务器返回的数据带BOM(byte -order mark),XMLHTTP可以解码任何UCS-2 (big or little endian)或者UCS-4 数据。注意,如果服务器返回的是xml文档,此属性并不处理xml文档中的编码声明。你需要使用responseXML来处理。
七:responseXML 将响应信息格式化为Xml Document对象并返回
备注
变量,此属性只读,将响应信息格式化为Xml Document对象并返回。如果响应数据不是有效的XML文档,此属性本身不返回XMLDOMParseError,可以通过处理过的DOMDocument对象获取错误信息。
八:status 返回当前请求的http状态码
长整形标准http状态码,定义如下:
Number Description
100
Continue
101
Switching protocols
200
OK
201
Created
202
Accepted
203
Non-Authoritative Information
204
No Content
205
Reset Content
206
Partial Content
300
Multiple Choices
301
Moved Permanently
302
Found
303
See Other
304
Not Modified
305
Use Proxy
307
Temporary Redirect
400
Bad Request
401
Unauthorized
402
Payment Required
403
Forbidden
404
Not Found
405
Method Not Allowed
406
Not Acceptable
407
Proxy Authentication Required
408
Request Timeout
409
Conflict
410
Gone
411
Length Required
412
Precondition Failed
413
Request Entity Too Large
414
Request-URI Too Long
415
Unsupported Media Type
416
Requested Range Not Suitable
417
Expectation Failed
500
Internal Server Error
501
Not Implemented
502
Bad Gateway
503
Service Unavailable
504
Gateway Timeout
505
HTTP Version Not Supported
备注
长整形,此属性只读,返回当前请求的http状态码,此属性仅当数据发送并接收完毕后才可获取。
九:xmlhttprequest:statusText成员
statusText
返回当前请求的响应行状态
十:abort()方法
取消当前请求
十一:getallresponseheaders()方法
获取响应的所有http头
备注
每个http头名称和值用冒号分割,并以\r\n结束。当send方法完成后才可调用该方法。
十二:getResponseHeader 从响应信息中获取指定的http头
例:
xmlhttp.getResponseHeader("Server");
输出http头中的server列:当前web服务器的版本及名称。
备注
当send方法成功后才可调用该方法。如果服务器返回的文档类型为"text/xml", 则这句话xmlhttp.getResponseHeader("Content-Type");将返回字符串"text/xml"。可以使用 getAllResponseHeaders方法获取完整的http头信息。
十三:open()方法 创建一个新的http请求,并指定此请求的方法、URL以及验证信息
语法
XMLHttpRequest.open(strMethod, strUrl, blnAsync, strUser, strPassword);
参数
strMethod
http方法,例如:POST、GET、PUT及PROPFIND。大小写不敏感。
strUrl
请求的URL地址,可以为绝对地址也可以为相对地址。
blnAsync[可选]
布尔型,指定此请求是否为异步方式,默认为true。如果为真,当状态改变时会调用onreadystatechange属性指定的回调函数。
async是一个布尔值。如果是异步通信方式(true),客户机就不等待服务器的响应;如果是同步方式(false),客户机就要等到服务器返回消息后才去执行其他操作。我们需要根据实际需要来指定同步方式,在某些页面中,可能会发出多个请求,甚至是有组织有计划有队形大规模的高强度的request,而后一个是会覆盖前一个的,这个时候当然要指定同步方式:Flase。
strUser[可选]
如果服务器需要验证,此处指定用户名,如果未指定,当服务器需要验证时,会弹出验证窗口。
strPassword[可选]
验证信息中的密码部分,如果用户名为空,则此值将被忽略。
备注
调用此方法后,可以调用send方法向服务器发送数据。
十四:send()方法
发送请求到http服务器并接收回应
XMLHttpRequest.send(varBody);
参数
varBody
欲通过此请求发送的数据。
备注
此方法的同步或异步方式取决于open方法中的bAsync参数,如果bAsync == False,此方法将会等待请求完成或者超时时才会返回,如果bAsync == True,此方法将立即返回。
十五:setRequestHeader 单独指定请求的某个http头
Example:

var http_request= false; 
function send_request(url) 
{ ///初始化、指定处理函数、发送请求的函数 

if (window.XMLHttpRequest) //Mozila 
{ 
http_request = new XMLHttpRequest(); 
if (http_request.overrideMimeType) 
{ 
http_request.overrideMimeType("text/xml"); 
} 
} 
else 
if (window.ActiveXobject) //IE 
{ 
try 
{ 
http_request = new ActiveXObject("Msxml2.XMLHTTP"); 
} 
catch (e) 
{ 
try{ 
http_request = new ActiveXObject("Microsoft.XMLHTTP"); 
} 
catch (e) { } 
} 
} 

if (!http_request) // 异常,创建对象实例失败 
{ 
alert("不能创建XMLHttpRequest实例!!"); 
return false; 
} 
// 指定当服务器返回信息时客户端的处理方式 
http_request.onreadystatechange = processRequest; 
// 确定发送请求的方式和URL以及是否同步执行下段代码 
http_request.open("GET",url,true); 
http_request.send(null); 
} 
//****************************************************************** 
function processRequest() 
{ 
if (http_request.readyState == 4) // 判断对象状态 
{ 
if (http_request.status == 200) // 请求结果已经成功返回 
{ 
alert(http_request.responseBody); 
var a = document.getElementById("hh").innerText; 
if (a =="1") 
{ 
alert("不可用!!"); 
} 
} 
else //页面不正常 
{ 
alert("你请求的页面不正常"); 
} 
} 
} 
// ******************************************************************** 
function userCheck() 
{ 
var f = document.Form1; 
var userName = f.username.value; 
if (userName == "") 
{ 
alert("用户名不能为空!!"); 
f.username.focus(); 
return false; 
} 
else 
{ 
send_request("alert.aspx?username=" userName) 
} 
}

ajax 入门基础之 XMLHttpRequest对象总结的更多相关文章

  1. 应用程序关闭时的iOS任务

    我正在构建一个应用程序,通过ajax将文件上传到服务器.问题是用户很可能有时不会有互联网连接,并且客户希望在用户重新连接时安排ajax调用.这可能是用户在离线时安排文件上传并关闭应用程序.应用程序关闭时可以进行ajax调用吗?

  2. android – Phonegap本地构建 – jquery ajax错误:readystate 0 responsetext status 0 statustext error

    解决方法您是否在索引文件中包含了内容安全元标记?

  3. Ajax简单的异步交互及Ajax原生编写

    一提到异步交互大家就会说ajax,仿佛ajax这个技术已经成为了异步交互的代名词.那下面将研究ajax的核心对象

  4. Ajax跨域问题的解决办法汇总(推荐)

    本文给大家分享多种方法解决Ajax跨域问题,非常不错具有参考借鉴价值,感兴趣的朋友一起学习吧

  5. ajax编写简单的登录页面

    这篇文章主要为大家详细介绍了ajax编写简单登录页面的具体代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  6. ajax从JSP传递对象数组到后台的方法

    今天小编就为大家分享一篇ajax从JSP传递对象数组到后台的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

  7. 解决ajax返回验证的时候总是弹出error错误的方法

    这篇文章主要介绍了解决ajax返回验证的时候总是弹出error错误的方法,感兴趣的小伙伴们可以参考一下

  8. 使用AJAX完成用户名是否存在异步校验

    这篇文章主要介绍了使用AJAX完成用户名是否存在异步校验的相关资料,需要的朋友可以参考下

  9. ajax实现无刷新省市县三级联动

    这篇文章主要为大家详细介绍了ajax实现无刷新省市县三级联动的相关资料,利用三层架构实现,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. jQuery Ajax 实现分页 kkpager插件实例代码

    本文通过实例代码给大家讲解了jQuery Ajax 实现分页 kkpager插件功能,需要的的朋友参考下吧

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部