js ajax php函数吗,JS如何实现Ajax的请求函数

这篇博客介绍了如何使用JavaScript原生代码实现一个简单的Ajax请求功能,包括GET和POST方法。通过创建XMLHttpRequest对象或者使用ActiveXObject进行浏览器兼容处理,实现与服务器的数据交互。在回调函数中处理响应状态,成功或失败的情况。示例代码展示了如何发起Ajax请求,并给出了使用示例,适合轻量级页面避免引入大型库的情况。
摘要由CSDN通过智能技术生成

这次给大家带来JS如何实现Ajax的请求函数,JS实现Ajax请求函数的注意事项有哪些,下面就是实战案例,一起来看一下。

一般我们写网页的时候,如果用到 Ajax 请求服务器,都是使用 JQuery 等已经封装好的库来调用,比较简单。

但是一般这些库的功能很多,引入了太多我们用不到的东西,如果我们需要写一个功能单一,简单的页面,完全用不到引用如此庞大的库文件。

我们可以简单实现一个自己的 Ajax 请求功能,具体的代码如下:var ajax = {};

ajax.x = function () {

if (typeof XMLHttpRequest !== 'undefined') {

return new XMLHttpRequest();

}

var versions = [

"MSXML2.XmlHttp.6.0",

"MSXML2.XmlHttp.5.0",

"MSXML2.XmlHttp.4.0",

"MSXML2.XmlHttp.3.0",

"MSXML2.XmlHttp.2.0",

"Microsoft.XmlHttp"

];

var xhr;

for (var i = 0; i < versions.length; i++) {

try {

xhr = new ActiveXObject(versions[i]);

break;

} catch (e) {

}

}

return xhr;

};

ajax.send = function (url, method, data, success,fail,async) {

if (async === undefined) {

async = true;

}

var x = ajax.x();

x.open(method, url, async);

x.onreadystatechange = function () {

if (x.readyState == 4) {

var status = x.status;

if (status >= 200 && status < 300) {

success && success(x.responseText,x.responseXML)

} else {

fail && fail(status);

}

}

};

if (method == 'POST') {

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

}

x.send(data)

};

ajax.get = function (url, data, callback, fail, async) {

var query = [];

for (var key in data) {

query.push(encodeURIComponent(key) + '=' + encodeURIComponent(data[key]));

}

ajax.send(url + (query.length ? '?' + query.join('&') : ''), 'GET', null, callback, fail, async)

};

ajax.post = function (url, data, callback, fail, async) {

var query = [];

for (var key in data) {

query.push(encodeURIComponent(key) + '=' + encodeURIComponent(data[key]));

}

ajax.send(url,'POST', query.join('&'), callback, fail, async)

};

使用方法: GETajax.get('/test.php', {foo: 'bar'}, function(response,xml) {

//success

},

function(status){

//fail

});

POST

ajax.post('/test.php', {foo: 'bar'}, function(response,xml) {

//succcess

},function(status){

//fail

});

这里需要注意一个问题,如果我们想要发送类似var sendCmd = "?op_code=" + code + "&op_cmd=" + cmd;

ajax.post('/control' + sendCmd,'',function(response,xml) {

console.log('success');

},

function(status){

console.log('failed:' + status);

});

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值