封装一个简单的chrome中console下ajax访问后台 方便寻找跨域问题
function httpRequest(opt) {
opt = opt || {};
opt.method = opt.method.toUpperCase() || 'POST';
opt.url = opt.url || '';
opt.async = opt.async || true;
opt.data = opt.data || null;
opt.success = opt.success || function () {};
var xmlHttp = null;
if (XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
else {
xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
}
// var postData = params.join('&');
if (opt.method.toUpperCase() === 'POST') {
xmlHttp.open(opt.method, opt.url, opt.async);
xmlHttp.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');
for (var key in opt.headers){
xmlHttp.setRequestHeader(key, opt.headers[key]);
}
xmlHttp.send(JSON.stringify(opt.data));
}
else if (opt.method.toUpperCase() === 'GET') {
xmlHttp.open(opt.method, opt.url + '?' + JSON.stringify(opt.data), opt.async);
xmlHttp.send(null);
}
xmlHttp.onreadystatechange = function () {
console.log('xmlHttp.readyState',xmlHttp.readyState,'xmlHttp.status',xmlHttp.status)
if(xmlHttp.readyState == 4) {
if(xmlHttp.status == 200) {
opt.success(xmlHttp.responseText);
}else{
opt.error(xmlHttp.status)
}
}
};
}
简单调用一下
httpRequest({
url: 'http://172.16.30.184/channel/mychannel/saveChannel',
method: 'post',
dataType: 'json',
contentType:'application/json;charset=UTF-8',
data: {},
cache: false,
headers: { appToken: sessionStorage.getItem("jeeJio_appToken") },
success: function (res) {
if (res) {
fn(res)
} else {
fn('')
}
},
error: function (e) {
err(e)
}
})
有跨域问题的情况下
无跨域问题的情况下