JS原生AJAX
2020-04-12 本文已影响0人
码农界四爷__King
common.js
const api = 'http://api.baidu.com/';
//获取当前域名
var domain = document.domain;
console.log("domain" + domain)
function Ajax(type, url, data, success, failed) {
// 创建ajax对象
var xhr = null;
if(window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
} else {
xhr = new ActiveXObject('Microsoft.XMLHTTP')
}
var type = type.toUpperCase();
// 用于清除缓存
var random = Math.random();
if(typeof data == 'object') {
var str = '';
str += 'domain' + '=' + "http://" + domain + '&'; //版本
str += 'version' + '=' + "2.22" + '&'; //版本
str += 'app' + '=' + "12" + '&'; //app
str += 'accout_password' + '=' + "A28AE085D23518A0" + '&'; //秘钥
for(var key in data) {
str += key + '=' + data[key] + '&';
}
data = str.replace(/&$/, '');
}
if(type == 'GET') {
if(data) {
xhr.open('GET', api + url + '?' + data, true);
} else {
xhr.open('GET', api + url + '?t=' + random, true);
}
xhr.send();
} else if(type == 'POST') {
xhr.open('POST', api + url, true);
// 如果需要像 html 表单那样 POST 数据,请使用 setRequestHeader() 来添加 http 头。
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send(data);
}
// 处理返回数据
xhr.onreadystatechange = function() {
if(xhr.readyState == 4) {
if(xhr.status == 200) {
if(JSON.parse(xhr.responseText).code == '1' || JSON.parse(xhr.responseText).code == '200') {
success(JSON.parse(xhr.responseText).data);
} else {
console.log('ds')
}
} else {
if(failed) {
failed(xhr.status);
}
}
}
}
}
html中引用
var sendData = {
"screen_type": '',
"screen_id": '',
"screen_name": ''
};
Ajax('post', 'api/home/home', sendData, function(data) {
console.log(data);
}, function(error) {
console.log(error);
});