AJAX——理解XMLHttpRequest对象
AJAX大家已经都知道了,XMLHttpRequest对象则是AJAX的核心。这篇博客重点总结一下这个对象的使用。
XMLHttpRequest对象的属性和方法:
|
属性 |
说明 |
|
readyState |
表示XMLHttpRequest对象的状态:0:未初始化。对象已创建,未调用open; 1:open方法成功调用,但Sendf方法未调用; 2:send方法已经调用,尚未开始接受数据; 3:正在接受数据。Http响应头信息已经接受,但尚未接收完成; 4:完成,即响应数据接受完成。 |
|
Onreadystatechange |
请求状态改变的事件触发器(readyState变化时会调用这个属性上注册的javascript函数)。 |
|
responseText |
服务器响应的文本内容 |
|
responseXML |
服务器响应的XML内容对应的DOM对象 |
|
Status |
服务器返回的http状态码。200表示“成功”,404表示“未找到”,500表示“服务器内部错误”等。 |
|
statusText |
服务器返回状态的文本信息。 |
|
方法 |
说明 |
|
Open(string method,string url,boolean asynch, String username,string password) |
指定和服务器端交互的HTTP方法,URL地址,即其他请求信息; Method:表示http请求方法,一般使用"GET","POST". url:表示请求的服务器的地址; asynch:表示是否采用异步方法,true为异步,false为同步; 后边两个可以不指定,username和password分别表示用户名和密码,提供http认证机制需要的用户名和密码。 |
|
Send(content) |
向服务器发出请求,如果采用异步方式,该方法会立即返回。 content可以指定为null表示不发送数据,其内容可以是DOM对象,输入流或字符串。 |
|
SetRequestHeader(String header,String Value) |
设置HTTP请求中的指定头部header的值为value. 此方法需在open方法以后调用,一般在post方式中使用。 |
|
getAllResponseHeaders() |
返回包含Http的所有响应头信息,其中相应头包括Content-length,date,uri等内容。 返回值是一个字符串,包含所有头信息,其中每个键名和键值用冒号分开,每一组键之间用CR和LF(回车加换行符)来分隔! |
|
getResponseHeader(String header) |
返回HTTP响应头中指定的键名header对应的值 |
|
Abort() |
停止当前http请求。对应的XMLHttpRequest对象会复位到未初始化的状态。 |
IE8/IE9、Opera Mini 完全不支持
xhr对象IE10/IE11部分支持,不支持
xhr.responseType为json部分浏览器不支持设置请求超时,即无法使用
xhr.timeout部分浏览器不支持
xhr.responseType为blob
function ajax(url,postData,fnSuc){
var xhr;
if(window.XMLHttpRequest){
xhr= new XMLHttpRequest();
//console.log(xhr);
}else{
// alert("不存在");
xhr= new ActiveXObject("Microsoft.XMLHTTP");
//alert(xhr);
}//XMLHttpRequest兼容性处理
xhr.open("POST", url , true);//指定请求的方式post/get,url,true/false(异步/同步)
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhr.onreadystatechange = function(){//请求状态改变时触发
var XMLHttpReq = xhr;
if (XMLHttpReq.readyState == 4) {//数据接受完成
if (XMLHttpReq.status == 200) {//服务器返回的http状态码,200表示成功
var text = XMLHttpReq.responseText;//服务器响应的文本内容
fnSuc(JSON.parse(text));//请求成功时返回的数据
}
}
};
postData = (function(obj){ // 转成post需要的字符串
var str = "";
for(var prop in obj){
str += prop + "=" + obj[prop] + "&"
}
return str;
})(postData);
xhr.send(postData);//向服务器发送请求
}
这是XMLHttpRequest简单的应用,使用时直接调用就行了,使用的是post请求可以传参,返回的是json数据便于处理,当然有其他需求可以根据情况添加。
AJAX——理解XMLHttpRequest对象的更多相关文章
- js进阶ajax的XMLHttpRequest对象的status和statustext属性(如果ajax和php联合使用的话:open连接服务器的第二个参数文件路径改成请求php的url即可)
js进阶ajax的XMLHttpRequest对象的status和statustext属性(如果ajax和php联合使用的话:open连接服务器的第二个参数文件路径改成请求php的url即可) 一.总 ...
- 详解AJAX核心 —— XMLHttpRequest 对象 (上)
我要说的内容都是非常基础的内容,高手就免看了,如果看了欢迎给点意见啊.新手或者对低层还不是很了解的人可以看看,帮助理解与记忆. XMLHttpRequest 对象是AJAX功能的核心,要开发AJAX程 ...
- [置顶] Ajax核心--XMLHttpRequest对象
XMLHttpRequest 对象是AJAX功能的核心,学习XMLHttpRequest对象就先从创建XMLHttpRequest 对象开始,了解在不同的浏览器中创建XMLHttpRequest 对象 ...
- Ajax核心--XMLHttpRequest对象
XMLHttpRequest 对象是AJAX功能的核心,学习XMLHttpRequest对象就先从创建XMLHttpRequest 对象开始,了解在不同的浏览器中创建XMLHttpRequest 对象 ...
- AJAX——核心XMLHttpRequest对象
AJAX大家已经都知道了,是为了实现异步通讯,提高用户体验度,而将很多旧知识(XML,DOM,JavaScript,HTML,Jquery,Css……)重新融合的一个新的知识框架.而,XMLHttpR ...
- 详解AJAX核心 —— XMLHttpRequest 对象 (下)
继续上一篇的内容上一篇关于XMLHttpRequest 对象发送对服务器的请求只说到了用Get方式,没有说Post方式的.那是因为要说Post方式就需要先说另外一个东西,那就是DOM(Document ...
- AJAX - 创建 XMLHttpRequest 对象
XMLHttpRequest 是 AJAX 的基础. XMLHttpRequest 对象 所有现代浏览器均支持 XMLHttpRequest 对象(IE5 和 IE6 使用 ActiveXObject ...
- jquery与ajax的XMLHttpRequest对象介绍
首先 认识一个对象 这个对象叫XMLHttpRequest XMLHttpRequest对象可以提供在不刷新页面的情况下向服务器发送异步请求,并且接受服务器端返回的结果.从而实现局部更新当前页面的功 ...
- AJAX 核心 —— XMLHTTPRequest 对象回顾
一.AJAX概述 不使用 AJAX 的网页,如果要更新内容,需要重载整个页面. AJAX ( Asynchronous Javascript And XML ,异步 Javascript 和 XML) ...
随机推荐
- ES6 Object.setPrototypeOf ()方法和defineProperty()方法的使用
将一个指定的对象的原型设置为另一个对象或者null(既对象的[[Prototype]]内部属性). 示例: <script type="text/javascript"> ...
- MySQL高可用架构之MySQL5.7.19 PXC
CentOS7.3下Percona-XtraDB-Cluster-5.7.19集群部署PXC三节点安装:node1:10.10.10.11 node2:10.10.10.12node3:10.10.1 ...
- MongoDB学习【四】—pymongo操作mongodb数据库
一.pymongodb的安装 Python 要连接 MongoDB 需要 MongoDB 驱动,这里我们使用 PyMongo 驱动来连接. pip安装 pip 是一个通用的 Python 包管理工具, ...
- 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_07 缓冲流_2_BufferedOutputStream_字节缓冲
子类 继承父类,这些方法都可以使用 必须写上flush,刷新数据数据才能写入到文件内
- 阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第2节 抽象类_14-抽象的概念
先来了解什么叫做抽象 父类有个计算面积的方法,但是不同的图形计算面积的方式是不一样的.所以这里的计算面积的方法就是个抽象的方法. 只有到具体的子类里面才能去实现具体的计算面积的方法 动物类是父类.有吃 ...
- Jmeter的中英文互换
1.jmeter的中英文互换:为了更深入的了解Jmeter,一般使用英文版的jmeter. 旧版本下载的默认中文较多.新版本5.1的下载后默认英文比较的多. 方法一: 选项->选择一种语言,但是 ...
- ceph部署-常用命令
常用命令:1.ceph healthceph -s 2.ceph osd treeceph osd lspoolsceph osd pool [poolname] rbd pg_numceph osd ...
- [Web 前端] 018 css 清除浮动的四种方法
清除浮动的四种方法 加 clear: ...(见例1) 父级上增加属性 overflow:hidden(见例2.1) 在最后一个子元素的后面加一个空的 div,给它一个样式属性 clear: both ...
- [19/05/20-星期一] CSS_css的盒子模型
一.盒子模型 <!DOCTYPE html> <html> <!-- div 标签 块级标签 主要用来网页布局, 会将其中的子元素内容作为一个独立的整体存在 默认宽度是页 ...
- Win10不能远程其他远程计算机的解决办法
Win10不能远程其他远程计算机的解决办法 转自: https://blog.csdn.net/qq_38197830/article/details/69488236 首先打开控制面板——> ...