【问题标题】:XMLHttpRequest returns status of 0 in Firefox 3.6.10 and up from cross origin requestsXMLHttpRequest 在 Firefox 3.6.10 及更高版本中从跨源请求返回状态 0
【发布时间】:2011-04-22 08:02:19
【问题描述】:

我正在开发一个向使用 Netty 编写的 HTTP 服务器发出跨源 AJAX 请求的应用程序。

下面是正在执行的 Javascript 代码类型的示例。

        $.ajax({
            type:"GET",
            url:"http://localhost:5000/someresource",
            data: { id1: "1", id2: "2" },
            success: function(status, textStatus, xhr) {
                alert("Success")
            },
            error: function(status, textStatus, xhr) {
                alert("Error")
            }
        });

我看到的问题是,在 Firefox(3.6.10 和 4.0 beta)上,无论响应的状态如何,XMLHttpRequest 的状态始终为 0。在 firebug 中,我可以看到服务器正在返回请求的正确状态,但这并没有被推送到 XMLHttpRequest 对象。

下面是正在发送的请求和响应标头

Response Headers
Content-Type text/plain; charset=utf-8
Content-Length 0
Access-Control-Allow-Orig... http://localhost:9000
Cache-Control no-cache
Connection Keep-Alive
Date Thu, 07 Oct 2010 07:52:08 GMT

Request Headers
Host localhost:5000
User-Agent Mozilla/5.0.... 
Accept */*
Accept-Language en-gb,en;q=0.5
Accept-Encoding gzip,deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive 115
Connection keep-alive
Content-Type application/x-www-form-urlencoded
Referer http://localhost:9000/test
Origin http://localhost:9000

我尝试在 Chrome、Opera 和 Safari 中执行代码,它们都运行良好。这是我正在做的事情还是 Firefox 中的错误?

提前致谢。

【问题讨论】:

  • 这仍然是一个悬而未决的问题吗?我似乎在 Chrome 16 和 Firefox 10.0 上遇到了关于 302 重定向、XHR 和 CORS 的错误行为。非重定向工作正常。

标签: firebug xmlhttprequest cors


【解决方案1】:

我在 Firefox 3.6+ 和 chrome 中都看到了这个问题。我发现的原因是我在 localhost 服务器上调试站点。这两者都只会在从远程 url 运行时返回适当的响应代码。它们都为 localhost 返回不同的状态代码。

【讨论】:

    猜你喜欢
    • 2014-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-11
    • 1970-01-01
    • 1970-01-01
    • 2016-04-24
    相关资源
    最近更新 更多