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) ...
随机推荐
- 【转】mackbook wifi卡死未响应的问题
原文:http://tieba.baidu.com/p/6140144143?traceid= 1. wifi未响应了,紧急处理法:打开活动监视器,搜索airportd,结束掉进程 2. 彻底解决办法 ...
- Nginx-Lua模块的执行顺序(转)
一.nginx执行步骤 nginx在处理每一个用户请求时,都是按照若干个不同的阶段依次处理的,与配置文件上的顺序没有关系,详细内容可以阅读<深入理解nginx:模块开发与架构解析>这本书, ...
- dig中文帮助
NAME(名称) dig — 发送域名查询信息包到域名服务器 SYNOPSIS(总览) dig [@server] domain [⟨query-type⟩] [⟨query-clas ...
- 接口自动化之ddt
接口自动化会用到数据驱动模式,也就是一个ddt模块 目录 1.环境准备 2.调用时标准格式 3.应用(结合excle来传值) 1.环境准备 首先,需要安装ddt模块 pip install ddt 2 ...
- Week 12 - 673.Number of Longest Increasing Subsequence
Week 12 - 673.Number of Longest Increasing Subsequence Given an unsorted array of integers, find the ...
- 转载Django 500,404,400错误修改优化
转载:https://blog.csdn.net/qq_38038143/article/details/80105653 404错误:page not found视图 500错误:server er ...
- java中过滤器Filter的使用总结【转载】
1.看了别人写的,觉得获益匪浅,转载下为以后的使用 java中Filter的使用
- SQL Server增量备份数据[转]
服务器中一个数据库DB,其中表A有几个地方要写入的,程序设定在网络不通的时候也可以用本机的数据库运行,在网络通达后,再将本机的数据写回到服务器中,经研究,增量备份有以下几种可能性: 1. ...
- Java学习day10-面向对象特征之一:封装和隐藏
一.包package和引用import 1.关键字package package语句作为Java源文件的第一条语句,指明该文件中定义的类所在的包(若缺省该语句,则指定为无名包).包的存在是为了区别同名 ...
- 【洛谷p1309】瑞士轮
因为太菜不会写P1310 表达式的值,就只能过来水两篇博客啦qwq 另外这个题我是开o2才过的(虽然是写了归并排序)(可能我太菜写的归并不是还可以“剪枝”吧qwq)哎,果真还是太菜啦qwq 所以准备写 ...