封装多种方式的ajax异步方法
2017-04-17 20:16
281 查看
// 准备一个 对象
// 如果参数使用逗号分隔 写多个
// 那么用户 需要去记忆参数的 顺序,以及每一个参数的作用
var my$_pro = {
get: function (url,data, success) {
//1.创建异步对象
var xhr = newXMLHttpRequest();
// 由于是 get请求
// 数据 需要拼接在 url中
url += '?';
url += data;
//2.设置属性(请求头,请求行)
xhr.open('get', url);
//4.注册状态改变事件
xhr.onreadystatechange = function () {
//5.判断状态&请求是否成功并使用数据
if (xhr.readyState == 4 && xhr.status == 200) {
success(xhr.responseText);
}
}
//3.发送请求 请求主体
xhr.send(null);
},
post: function (url,data, success) {
//1.创建异步对象
var xhr = newXMLHttpRequest();
//2.设置属性(请求头,请求行)
xhr.open('post', url);
// 设置 请求头
xhr.setRequestHeader('content-type','application/x-www-form-urlencoded');
//4.注册状态改变事件
xhr.onreadystatechange = function () {
//5.判断状态&请求是否成功并使用数据
if (xhr.readyState == 4 && xhr.status == 200) {
success(xhr.responseText);
}
}
//3.发送请求 请求主体
xhr.send(data);
},
ajax: function (option) {
//1.创建异步对象
var xhr = newXMLHttpRequest();
// 如果是get方式,url 可能需要拼接
if (option.type == 'get') {
option.url += '?';
option.url += option.data;
// 如果 这里 使用了 data 那么 send 这个方法中 null
option.data = null;
}
//2.设置属性(请求头,请求行)
xhr.open(option.type, option.url);
// 设置 请求头
if (option.type == 'post') {
xhr.setRequestHeader('content-type','application/x-www-form-urlencoded');
}
//4.注册状态改变事件
xhr.onreadystatechange = function () {
//5.判断状态&请求是否成功并使用数据
if (xhr.readyState == 4 && xhr.status == 200) {
// xhr 判断数据是json格式还是xml格式
var value = xhr.getResponseHeader('Content-Type');
// 如果有 xml
if (value.indexOf('xml') != -1) {
option.success(xhr.responseXML);
} else if (value.indexOf('json') != -1) {
// 如果是json数字据 那么 帮忙 把转换的操作也做了
option.success(JSON.parse(xhr.responseText));
} else {
option.success(xhr.responseText);
}
}
}
//3.发送请求 请求主体
xhr.send(option.data);
}
}
// 如果参数使用逗号分隔 写多个
// 那么用户 需要去记忆参数的 顺序,以及每一个参数的作用
var my$_pro = {
get: function (url,data, success) {
//1.创建异步对象
var xhr = newXMLHttpRequest();
// 由于是 get请求
// 数据 需要拼接在 url中
url += '?';
url += data;
//2.设置属性(请求头,请求行)
xhr.open('get', url);
//4.注册状态改变事件
xhr.onreadystatechange = function () {
//5.判断状态&请求是否成功并使用数据
if (xhr.readyState == 4 && xhr.status == 200) {
success(xhr.responseText);
}
}
//3.发送请求 请求主体
xhr.send(null);
},
post: function (url,data, success) {
//1.创建异步对象
var xhr = newXMLHttpRequest();
//2.设置属性(请求头,请求行)
xhr.open('post', url);
// 设置 请求头
xhr.setRequestHeader('content-type','application/x-www-form-urlencoded');
//4.注册状态改变事件
xhr.onreadystatechange = function () {
//5.判断状态&请求是否成功并使用数据
if (xhr.readyState == 4 && xhr.status == 200) {
success(xhr.responseText);
}
}
//3.发送请求 请求主体
xhr.send(data);
},
ajax: function (option) {
//1.创建异步对象
var xhr = newXMLHttpRequest();
// 如果是get方式,url 可能需要拼接
if (option.type == 'get') {
option.url += '?';
option.url += option.data;
// 如果 这里 使用了 data 那么 send 这个方法中 null
option.data = null;
}
//2.设置属性(请求头,请求行)
xhr.open(option.type, option.url);
// 设置 请求头
if (option.type == 'post') {
xhr.setRequestHeader('content-type','application/x-www-form-urlencoded');
}
//4.注册状态改变事件
xhr.onreadystatechange = function () {
//5.判断状态&请求是否成功并使用数据
if (xhr.readyState == 4 && xhr.status == 200) {
// xhr 判断数据是json格式还是xml格式
var value = xhr.getResponseHeader('Content-Type');
// 如果有 xml
if (value.indexOf('xml') != -1) {
option.success(xhr.responseXML);
} else if (value.indexOf('json') != -1) {
// 如果是json数字据 那么 帮忙 把转换的操作也做了
option.success(JSON.parse(xhr.responseText));
} else {
option.success(xhr.responseText);
}
}
}
//3.发送请求 请求主体
xhr.send(option.data);
}
}
相关文章推荐
- ajax使用serialize()方法后,数据无法封装并获取(PUT提交方式!)
- Ajax简单实现文件异步上传的多种方法
- Ajax简单实现文件异步上传的多种方法
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(10):服务器端和客户端数据类型的自动转换:以XML方式序列化数据、小结
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(10):服务器端和客户端数据类型的自动转换:以XML方式序列化数据、小结
- 让异步的多个ajax顺序执行的方法
- 异步回调(伪Ajax方式)
- ssh注解的方式,调用一个action内部的多种方法的写法
- 使用ajax异步校验数据的两种方法
- ios-day11-02(控制器的多种创建方式。init方法创建、通过storyboard的创建、通过xib创建)
- C#访问远程主机资源的方法,多种方式
- Ajax请求GET/POST方法的封装
- 多种方法实现数组去重以及字符串去重(ES5常用去重方式、ES6快捷去重、hash表方式去重)
- ajax方法的封装
- .net的ajax中使用javascript的send方法post参数,url传参,ajax同步异步JS包,传参即可用
- ajax步骤、状态码、get/post方式区别、封装ajax函数
- ajax post方式表单提交setRequestHeader报错解决方法
- AsyncTask的异步执行方法中get请求的方式
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(6):服务器端和客户端数据类型的自动转换:复杂类型
- 百度编辑器ueditor通过ajax方式提交,不需要事先转义字符的方法(异常:从客户端(xxx)中检测到有潜在危险的 Request.Form 值)