网站建设资讯

NEWS

网站建设资讯

定义自己的ajax函数

由于用原生js的方式发起的网络请求,都是以查询字符串的形式,提交给服务器的,用户以对象的形式提交参数的话会比较方便,所以需要把用户传递过来的参数对象进行处理,定义resolveData的函数,设置形参接收参数,遍历里面的对象,把键和值用=的方式进行拼接,然后把所得的值添加进空的数组即可;最后用&符号把数组的每一项进行分割,并返回;定义itheima函数,设置形参用于接收用户传递过来的配置对象参数,创建xhr对象,把传递过来的参数传递给处理参数的函数,把得到的返回值,给一个变量,由于是不同的请求,所以要进行判断,首先是GET请求,判断参数里面的method是否全等于GET,由于传递过来的参数有可能是小写,所以通过toUpperCase方法转化为大写,如果条件成立调用open方法,把对应的值填入即可,调用send函数;POST也一样,只是提交数据多了参数和POST请求需要“Content-Type”头指定请求主题的MIME类型。最后调用监听事件即可;

网站建设哪家好,找成都创新互联!专注于网页设计、网站建设、微信开发、微信小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了寻乌免费建站欢迎大家使用!

function resolveData(data) {
var arr = [];
    for (var k in data) {
var str = k + "=" + data[k];
        arr.push(str)
    }
return arr.join("&")
}

function itheima(options) {
    var xhr = new XMLHttpRequest();
var qs = resolveData(options.data);
  
if (options.method.toUpperCase() === "GET") {
        xhr.open(options.method, options.url+ "?" + qs);
        xhr.send();
    }else if(options.method.toUpperCase() === "POST"){
        xhr.open(options.method, options.url)
        xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
        xhr.send(qs)
    }
    
    xhr.onreadystatechange= function () {
if (xhr.readyState === 4 && xhr.status === 200) {
var result = JSON.parse(xhr.responseText)
            options.success(result);
        }
    }

}

当前标题:定义自己的ajax函数
标题网址:http://njwzjz.com/article/dsopoeg.html