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基础知识.老师讲的还是比较全面简单的,起码作为一个非专业码农以及数据 ...
随机推荐
- RHCA学习笔记:RH442-Unit5 队列原理
NIT 5 Queuing Theory 队列原理 目标: 1.明白性能调优的关键术语 2. 应用队列技术解决性能问题 3.明白性能调优的复杂性 5.1 Introd ...
- UDP包的最大大小是多少?
每个udp包的最大大小是多少? 65507 约等于 64K 为什么最大是65507? 因为udp包头有2个byte用于记录包体长度. 2个byte可表示最大值为: 2^16-1=64K ...
- HTML增加删除邮件(table)
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- linux网卡混杂模式打开
有时候为嗅探到网络上的数据,需要将网卡设置到混杂模式.进入该模式将网络上的数据一并抓获,为此在设置nic的混杂模式的时候有诸多方法? 通过shell命令来实现:ifconfig eth1 promis ...
- 两个iframe之间传值
例如:点击后会把另一个iframe中的值得到弹出 Main: <html lang="en" xmlns="http://www.w3.org/1999/xhtml ...
- javascript 中的new操作符的理解
new 操作符 在有上面的基础概念的介绍之后,在加上new操作符,我们就能完成传统面向对象的class + new的方式创建对象,在Javascript中,我们将这类方式成为Pseudoclassic ...
- ACM——圆柱体的表面积
lems 1092 圆柱体的表面积 时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte总提交:2697 测试通过:414 ...
- 如何在VC++ 中调试MEX文件
MEX文件对应的是将C/C++文件语言的编写之后 得到的相关文件加载到Matlab中运行的一种方式, 现对于Matlab 中的某些程序运行效率而言, C/C++ 代码某些算法的领域上面执行效率很高,若 ...
- Java编程风格与命名规范整理
基本命名规范 包命名 包名按照域名的范围从大到小逐步列出,恰好和Internet上的域名命名规则相反. 由一组以“.”连接的标识符构成,通常第一个标识符为符合网络域名的两个或者三个英文小写字母. Pe ...
- 学习笔记_Filter小结(过滤器JavaWeb三大组件之一)
Filter小结 Filter的三个方法: l void init(FilterConfig):在Tomcat启动时被调用: l void destroy():在Tomcat关闭时被调用: l ...