【问题标题】:XMLHttpRequest request is resultin in ReadyState 4 and status is 200XMLHttpRequest 请求导致 ReadyState 4,状态为 200
【发布时间】:2010-05-10 09:24:52
【问题描述】:

我正在尝试对本地的内容发出 XMLHttpRequest 请求,从 HTML 文件和本地驻留的 javascript 在本地网络服务器上运行。

它会点击网络服务器请求,然后即使它在我的 javascript 中将数据发回,我也会立即获得 readyState 4 和状态为 0。

如果我尝试将页面放在网络服务器文件夹中并作为网页 slke http;//localhost/ 文件名访问它们,那么它可以正常工作。

【问题讨论】:

    标签: javascript xmlhttprequest


    【解决方案1】:

    这与 Web 服务器返回 HTTP 状态代码有关,并且由于您正在访问本地文件系统,因此无法返回状态代码 - 因此 Unknown (0)。一些链接:


    跟随您的 cmets,对于导致您的问题的原因更加清楚。 XMLHttpRequests 在每个浏览器中都受到Same origin policy 的限制。如果您尝试访问不同域、端口或协议上的文件,该请求将返回状态代码 0,而 responseText 则没有任何内容。暂时最合适的解决方法是JSON with Padding

    【讨论】:

    • 我想我把问题用错了方式。让我提供更多细节:我的 c:\ 驱动器中有 test.html,我有一个在 qt 中运行的本地网络服务器,我有一些写入该网络服务器的插件将获取请求并发送一些响应文本“你好”。在 test.html 中,我正在发出一个 xml xhr 请求,它将发出一个像 localhost:8080/test 这样的 GET 请求,它将由该插件返回文本“hello”。现在,如果我直接从 C:\ 打开 test.html,它不起作用,我的意思是我得到响应 4 和状态 0,并且响应文本什么都没有。但是请求正在通过网络服务器和插件。
    • 另外提一下,如果我将 test.html 放在网络服务器的文件夹中,然后像..localhost:8080/test.html 那样对那个页面进行请求,它就可以正常工作。
    • @deepak:我明白你现在的意思了。我已更新我的答案以反映您遇到的问题。
    猜你喜欢
    • 2018-11-11
    • 2012-08-15
    • 2014-05-28
    • 1970-01-01
    • 1970-01-01
    • 2016-07-24
    • 2019-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多