XMLHttpRequest 使用概括
***********************************************
XMLHttpRequest对象初始化:
***********************************************
<script language="javascript">
var http_request=false;
//IE浏览器
http_request=new ActiveXObject("Msxml2.XMLHTTP");
http_request=new ActiveXObject("Microsoft.XMLHTTP");
//Mozilla浏览器
http_request=new XMLHttpRequest();
</script>
***********************************************
XMLHttpRequest对象的方法:
***********************************************
方法 描述
abort() 停止当前请求
getAllResponseHeaders() 作为字符串返回完整的headers
getResponseHeader("headerLabel") 作为字符串返回单个的headers
open("method","URL"[,asyncFlag[,"userName"[,"password"]]]) 设置未决的请求的目标URL,方法和其它参数
send(content) 发送请求
setRequestHeader("laber","value") 设置header并和请求一起发送
***********************************************
XMLHttpRequest对象的属性:
***********************************************
属性 描述
onreadystatechange 状态改变的事件触发器
readyState 对象状态(integer):
0=未初始化;1=读取中;2=已读取;3=交互中;4=完成
responseText 服务器进程返回数据的文本版本
responseXML 服务器进程返回数据的兼容DOM的XML文档对象
status 服务器返回的状态码,如404="文件未找到";200="成功"
statusText 服务器返回的状态文本信息
************************************************
一个完整的Ajax调用流程
************************************************
A、初始化对象并发出XMLHttpRequest请求
B、指定响应处理函数
http_request.onreadystatechange=processRequest;//这个processRequest是函数名,是当从服务器返回数据后触发的事件
C、发出HTTP请求
http_request.open('GET','http://www.163.com/1.asp',true);
http_request.send(null);
//如果第一参数是post则还要加上下面这条语句
http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
D、处理服务器返回的信息
在第二步已经指定了响应处理函数,这一步,来看看这个响应处理函数都应该做什么
function processRequest {
//检查XMLHttpRequest对象的readyState值,判断请求目前的状态。
if(http_request.readyState==4{
//信息已经返回,可以开始处理
}else{
//信息还没有返回,等待
}
//判断返回的http状态码,确定返回的页面没有错误。
if(http_request.status==200{
//页面正常,可以开始处理信息
}else{
//页面有问题
}
}
XMLHttpRequest对成功返回的信息有两种处理方式:
responseText:将传回的信息当字符串使用;
responseXML:将传回的信息当XML文档使用,可以用DOM处理.
<script language="javascript">
var http_request=false;
function send_request(url){//初始化、指定处理函数、发送请求的函数
http_request=false;
//开始初始化XMLHttpRequest对象
if(window.XMLHttpRequest){//Mozilla浏览器
http_request=new XMLHttpRequest();
if(http_request.overrideMimeType){//设置MiME类别
http_request.overideMimeType("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){//异常,创建对象实例失败
window.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.responseText);
}else{//页面不正常
alert("您所请求的页面有异常.");
}
}
}
</script>
XMLHttpRequest 使用概括的更多相关文章
- JavaScript权威设计--跨域,XMLHttpRequest(简要学习笔记十九)
1.跨域指的是什么? URL 说明 是否允许通信 http://www.a.com/a.jshttp://www.a.com/b.js 同一域名下 允许 http://www.a.com/lab/a. ...
- AJAX的核心XMLHttpRequest对象
为了实现异步通讯,提高用户体验度,而将很多旧知识(XML,DOM,JavaScript,HTML,jQuery,Css...)重新融合程一个新的知识框架.而XMLHttpRequest对象则是其中的重 ...
- XMLHTTPRequest对象的创建与浏览器的兼容问题
MLHttpRequest 对象是AJAX功能的核心,要开发AJAX程序必须从了解XMLHttpRequest 对象开始. 了解XMLHttpRequest 对象就先从创建XMLHttpRequest ...
- 部分安卓手机微信浏览器中使用XMLHttpRequest 2上传图片显示字节数为0的解决办法
前端JS中使用XMLHttpRequest 2上传图片到服务器,PC端和大部分手机上都正常,但在少部分安卓手机上上传失败,服务器上查看图片,显示字节数为0.下面是上传图片的核心代码: HTML < ...
- Ajax 与 XmlHttpRequest
AJAX描述了确保Web应用在Web服务器请求新数据的情况下也能(几乎)实时反应的一种方法.具体地说,AJAX只是一些建立已久的技术的相互作用,从HTML.XHTML和HTTP,到JavaScript ...
- js中XMLHttpRequest对象实现GET、POST异步传输
js中XMLHttpRequest对象实现GET.POST异步传输 /* * 统一XHR接口 */ function createXHR() { // IE7+,Firefox, Opera, Chr ...
- AJAX初探,XMLHttpRequest介绍
AJAX初探,XMLHttpRequest介绍 AJAX AJAX = Asynchronous JavaScript and XML. 异步的JavaScript和XML. AJ ...
- 大熊君学习html5系列之------XHR2(XMLHttpRequest Level 2)
一,开篇分析 Hi,大家好!大熊君又和大家见面了,(*^__^*) 嘻嘻……,这系列文章主要是学习Html5相关的知识点,以学习API知识点为入口,由浅入深的引入实例, 让大家一步一步的体会" ...
- Hadoop概括——学习笔记<一>
之前有幸在MOOC学院抽中小象学院hadoop体验课. 这是小象学院hadoop2.X概述第一章的笔记 第一章主要讲的是hadoop基础知识.老师讲的还是比较全面简单的,起码作为一个非专业码农以及数据 ...
随机推荐
- 动作-CCActionInterval之CCGridAction家族
CCGrid3DAction // 作用:x轴3D反转特效 CCActionInterval *flipX3D= CCFlipX3D::create(4); // 作用:Y轴3D反转特效 CCA ...
- 鼠标单击事件--JavaScript
<html> <head> <title></title> </head> <script type="text/javas ...
- DNS 和 IPv6 配置攻略
Windows 2003 DNS配置攻略 http://lgzeng2360.blog.51cto.com/275998/161908/ http://ask.zol.com.cn/q/21861.h ...
- udp开发-dtd验证,dom解析
//博主太懒了,并没有提供范例程序 6.基于UDP开发 (1)发送方:socket->准备数据包 DatagramSocket docket = new DatagramSocket(); // ...
- Sqlserver With as
with t as (select * from emp where depno=10) 总结:可以看做将查询出来的语句块表示为一个临时表 select * from t where empno=xx ...
- js获得文件根目录
function getRootPath(){ //获取当前网址,如: http://localhost:8083/proj/meun.jsp var curWwwPath = window.docu ...
- Ubuntu 12.04安装PPTP
1.安装软件 sudo apt-get install pptpd ufw 2.编辑/etc/ppp/pptpd-options 找到 refuse-pap refuse-chap refuse-ms ...
- 在Eclipse的DDMS中查看手机data文件夹中的内容
在模拟器状态下,在Eclipse的DDMS中的File Explorer下查看手机data/data中的内容是件非常轻松的事情,特别是查看databases 但是在真机模式下就全然不是那么一回事了,在 ...
- ios开发,地图标注聚集。搜索标注title功能
最近在做地图功能,要实现的就是地图标注聚集,还有搜索地图 地图标注通常都是大头针.如果地图缩小到一定范围的时候,会显示密密麻麻的大头针.这样会显的难看 所以设计了一定区域范围内的大头针,缩小的时候给聚 ...
- swift-07-使用for-in 遍历数组
//for-in /* for 迭代变量 in集合变量 { 使用迭代变量便利所有数据 } */ //遍历数组 var arr = ["a" ,"b" ,&quo ...