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);
}
ajax 小小封装
最新推荐文章于 2021-08-05 12:20:50 发布