我想从文件本地到服务器获取数据ajax。 我在Js写作如下:
var UrlDetails = 'http://192.xxx.x.xxx:7000';
function createCORSRequest(method, url, asynch) {
var xhr = new XMLHttpRequest();
if ("withCredentials" in xhr) {
// XHR for Chrome/Firefox/Opera/Safari.
xhr.open(method, url, true);
xhr.setRequestHeader('MEDIBOX', 'login');
xhr.setRequestHeader('Content-Type', 'application/json; charset=UTF-8');
} else if (typeof XDomainRequest != "undefined") {
// XDomainRequest for IE.
xhr = new XDomainRequest();
xhr.open(method, url, asynch);
} else {
// CORS not supported.
xhr = null;
}
return xhr;
}
function getDoLogin(e, callback) {
var url = UrlDetails + '/api/loginGET?username=' + e.id + '&password=' + e.password + '&f=json';
var xhr = createCORSRequest('GET', url, true);
if (xhr) {
xhr.onreadystatechange = function () {
try {
if (xhr.readyState === XMLHttpRequest.DONE) {
if (xhr.status === 200) {
callback(JSON.parse(xhr.responseText));
} else {
xhr.status === 403 ? modalShow() : errorServer(xhr.status);
}
}
}
catch (e) {
alert('Caught Exception: ' + e.description);
}
};
xhr.send();
}
}
我调用了函数getDoLogin(e, f);
我从Chrome收到错误:XMLHttpRequest无法加载http://192.xxx.x.xxx:7000/api/loginGET?username=1&password=1&f=json。预检的响应具有无效的HTTP状态代码405
它只与Jquery一起运行:
function getDoLoginJQuery(e) {
return $.Deferred(function (d) {
$.ajax({
type: 'get',
url: UrlDetails +'/loginGET?username=' + e.id + '&password=' + e.password + '&f=json',
cache: 'false',
dataType: 'json'
}).done(function (a, b) {
d.resolve(a)
}).fail(function (a, b, c) {
d.reject(a, b, c);
})
})
}
我不知道如何用JS编写来完全运行。 (对不起。我的英语不好。)
答案 0 :(得分:0)
尝试删除setRequestHeader
,如下所示:
function createCORSRequest(method, url, asynch) {
var xhr = new XMLHttpRequest();
if ("withCredentials" in xhr) {
// XHR for Chrome/Firefox/Opera/Safari.
xhr.open(method, url, true);
// xhr.setRequestHeader('MEDIBOX', 'login');
// xhr.setRequestHeader('Content-Type', 'application/json; charset=UTF-8');
} else if (typeof XDomainRequest != "undefined") {
// XDomainRequest for IE.
xhr = new XDomainRequest();
xhr.open(method, url, asynch);
} else {
// CORS not supported.
xhr = null;
}
return xhr;
}
祝你好运。