Firefox上的BeforeUnload CORS问题

时间:2018-07-10 20:41:35

标签: javascript unity3d firefox cors xmlhttprequest

尝试在beforeUnload事件中发送XHR请求。

我的测试在全局上下文和beforeunload事件中都可以在Chrome上正常运行。在全局上下文中,该请求在Firefox上也成功。但是,当我在beforeunload事件中运行相同的方法时,会收到CORS错误。

function doSomething() {
    var data = null;
    var xhr = new XMLHttpRequest();
    xhr.addEventListener("readystatechange", function () {
        if (this.readyState === 4) {
            console.log(this.responseText);
        }
    });
    xhr.open("GET", "http://localhost:8000/test.html");
    xhr.send(data);
}
window.addEventListener("beforeunload", doSomething, false);
  

跨域请求被阻止:“同源起源”策略禁止读取http://localhost:8000/index.html处的远程资源。 (原因:CORS请求未成功。)

我也尝试过

    window.addEventListener("beforeunload", function() { setTimeout(doSomething, 0);}, false);

有了这个,我可以看到请求是由firefox发送的(并且我收到了请求服务器端,但是我仍然收到错误并且没有得到响应客户端)

我认为我发送的是正确的CORS标头,因为它可以在Chrome和Firefox(在全球范围内)中使用。我知道这不是一个可靠的事件,因为它依赖于页面卸载之前的时间。但是至少如果我能够在页面加载之前发送一些东西,我会很满意的。但看起来Firefox甚至没有尝试:(

我不知所措。任何帮助将不胜感激!

0 个答案:

没有答案