ajax 小小封装

ajax常见问题
//1 读取缓存    url后加随机数  或者  设置xhr.setRequestHeader("If-Modified-Since", 0);
        //2 url传参数 如果有中文,需要进行url编码
        //3 请求的路径中不能有中文
        //4 区分大小写
        //5 如果服务器出现未捕获的异常  判断xhr.status == 200

//1 创建XMLHttpRequest对象
//2 告诉它请求谁   第三个参数 true异步,false同步
//3 XMLHttpRequest的状态改变之后触发
有5种状态
//0 new完了    1  open完了  2 send完了  3 正在接收  4 加载完毕 
//4 发送请求
//ajax封装
var xhr = createXHR();
//1
function createXHR() {
    var request;
    if (window.XMLHttpRequest) {
        request = new XMLHttpRequest();
    } else {
        request = new ActiveXObject("Microsoft.XMLHTTP");
    }
    return request;
}

function ajax(method,url,fnSuccess,fnError,data) {
    //2
    xhr.open(method, url, true);
    if (method.toLocaleLowerCase() == "post") {
        xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    }
        if(method.toLocaleLowerCase()=="get"){
           xhr.setRequestHeader("If-Modified-Since", 0);
        }
    //3
    xhr.onreadystatechange = function () {
        if (xhr.readyState == 4) {
            if (xhr.status == 200) {
                var r = xhr.responseText;
                fnSuccess(r);
            } else {
                fnError();
            }
        }
    }

    //4
    if (method.toLocaleLowerCase() == "post") {
        xhr.send(data);
    }else {
        xhr.send();
    }
}

function my$(id) {
    return document.getElementById(id);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值