创建两个ajax,创建一个Ajax

本文介绍了一段原生JavaScript编写的Ajax代码,包括GET和POST请求的实现,以及错误处理。通过创建XMLHttpRequest对象,设置请求头,发送请求,并在状态改变时处理响应。此外,还提供了一个具体的使用示例,用于获取天气预报数据。

Ajax原生代码:

// 对象浅复制

function extend(dst,obj) {

for (var i in obj) {

if (obj.hasOwnProperty(i)) {

dst[i] = obj[i];

}

}

}

function json(options) {

var opt = {

url: '',type: 'GET',data: {},success: function () {},error: function () {}

}

extend(opt,options);

if (opt.url) {

var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft XMLHTTP');

var url = opt.url,type = opt.type,data = opt.data,dataArr = [];

for (var k in data) {

dataArr.push(k + "=" + data[k]);

}

if (type === "GET") {

url = url + "?" + dataArr.join("&");

xhr.open(type,url,true);

xhr.send();

}

if (type === "POST") {

xhr.open(type,true);

xhr.setRequestHeader('Content-type','application/x-www-form-rulencoded');

xhr.send(dataArr.join('&'));

}

xhr.onreadystatechange = function () {

if (xhr.readyState == 4) {

var res

if (xhr.status === 200 || xhr.status === 304) {

if (opt.success && opt.success instanceof Function) {

res = xhr.responseText;

if (typeof res === 'string') {

res = JSON.parse(res);

}

opt.success.call(xhr,res);

}

} else {

if (opt.error && opt.error instanceof Function) {

opt.error.call(xhr,res);

}

}

}

}

}

}

测试:

var options = {

url: 'https://free-api.heweather.com/s6/weather/forecast',data: {

location: 'beijing',key: '5dafd138ca9841938affbd41798d1cbb'

},success: function (res) {

console.log('success');

console.log(res);

},error: function (res) {

console.log('error');

console.log(res);

}

}

json(options);

总结

以上是编程之家为你收集整理的创建一个Ajax全部内容,希望文章能够帮你解决创建一个Ajax所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值