Javascript CORS请求

时间:2016-11-10 19:18:14

标签: javascript cors

我有一个启用了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)

1 个答案:

答案 0 :(得分:1)

您发送(因此收到)请求之前会发出状态警报,因此状态尚未设置且您获得0。 您的所有警报/检查都需要在onload / onerror内部,这些请求在请求完成时执行。