我有一个启用了CORS的php Web服务。
我使用http://www.test-cors.org/来确认网络服务是否有效。根据此服务,XHR加载事件已触发,状态代码为200。
我将Test Cors生成的代码复制到在线javascript控制台https://repl.it/languages/javascript
中这里我总是收到0表示XHR状态。
基于Test Cors,我的Web服务设置为允许交叉来源。但是,当我使用在线javascript控制台时,相同的Web服务返回状态代码0。
这段代码有效吗?
var createCORSRequest = function(method, url) {
var xhr = new XMLHttpRequest();
if ("withCredentials" in xhr) {
//This part is called correctly
xhr.open(method, url, true);
}
return xhr;
};
var url = <URL>
var method = 'GET';
var xhr = createCORSRequest(method, url);
xhr.loadstart = function() {
//Not called
}
xhr.onload = function() {
//Not called
};
xhr.onerror = function() {
// Called
};
xhr.send();
alert(xhr.status)
答案 0 :(得分:1)
您发送(因此收到)请求之前会发出状态警报,因此状态尚未设置且您获得0。 您的所有警报/检查都需要在onload / onerror内部,这些请求在请求完成时执行。