浅谈jQuery异步对象(XMLHttpRequest)_Javascript教程-查字典教程网
浅谈jQuery异步对象(XMLHttpRequest)
浅谈jQuery异步对象(XMLHttpRequest)
发布时间:2016-12-30 来源:查字典编辑
摘要:我们先来看看异步对象五部曲这是post请求的、复制代码代码如下://1.00创建异步对象varxhr=newXMLHttpRequest()...

我们先来看看异步对象五部曲

这是post请求的、

复制代码 代码如下:

//1.00创建异步对象

var xhr = new XMLHttpRequest();

//2.0

xhr.open("post", url,params, true);

//3.0将参数使用Formdata属性传递

xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

//4.0设置回调函数

xhr.onreadystatechange = function () {

if (xhr.readyState == 4 && xhr.status == 200) {

alert(xhr.responseText);

}

}

//5.0传递参数

xhr.send(params);

结合get请求做一个异步对象的封装

get 请求中的

xhr.setRequestHeader("If-Modified-Since", "0"); 是为了清除缓存

而post请求的

复制代码 代码如下:

xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

是为了传输方式

在<from method='post' type="">

<from>中的type可以得到三种方式,其中包括application/x-www-form-urlencoded

复制代码 代码如下:

var ajaxHelp = {

CreatXHR: function () {

//创建异步对象

var xhr = new XMLHttpRequest();

return xhr;

},

//ajax的get请求

AjaxGet: function (url, callBack) {

this.AJaxCommon("get", url, null, callBack);

},

//ajax的post请求

AjaxPost: function (url, params, callBack) {

this.AJaxCommon("post", url, params, callBack);

},

AJaxCommon: function (method, url, params, callBack) {

//1.0

var xhr = this.CreatXHR();

//2.0

xhr.open(method, url, true);

//3.0

if (method == "get") {

xhr.setRequestHeader("If-Modified-Since", "0");

} else {

xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

}

//4.0

xhr.onreadystatechange = function () {

if (xhr.readyState == 4 && xhr.status == 200) {

var datas = JSON.parse(xhr.responseText);

//执行回调函数

callBack(datas);

}

}

//5.0

xhr.send(params);

}

};

ps:在JQuery里面是有$.ajax 和$.get / $.Post 等异步请求的方法的。以前的封装就不用了。额。好扯。其实他们底层也是这样的写的呢。JQuery就是为了解决各个浏览器的兼容性问题而已

以上就是本人对于jQuery异步对象(XMLHttpRequest)的理解,如有遗漏,麻烦联系我,补充上。

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新Javascript教程学习
    热门Javascript教程学习
    编程开发子分类