javascript - XMLHTTPRequest.status 返回 0 并且 responseText 在 FireFox 3.5 中为空

标签 javascript html ajax xmlhttprequest

我正在尝试访问第三方 URL 以获取 XML 响应并将响应显示到我的网页中。 我在 IE 和 Safari 浏览器中得到状态为 200 和就绪状态为 4 的正确响应。 但在 FF3.5 和 Crome 中,我得到的 XMLHTTPRequest 状态为 0,reponseText 为空字符串。我尝试了很多选项来编写普通的 XMLHTTPRequest Ajax 代码以及使用 Prototype 1.5 版本的 js 文件来处理这个 ajax 请求,但 FF 3.5 中的状态和 reponseText 仍然与 0 和空白字符串相同。

如果能提供解决此问题的帮助或究竟是什么导致了此问题,我们将不胜感激。 我也曾尝试在本地执行我的代码以及部署到网络服务器,但 FF 中的响应仍然相同。

下面是我的代码片段

<script type="text/javascript" src="prototype_ajax.js"></script>

<script type="text/javascript" language="javascript">

new Ajax.Request("I place my URL Here", {
    method: 'get',
    onSuccess : function(transport){

       var resultDoc = transport.responseText;
       var rootObj = loadXML(resultDoc);

    },
    onFailure : function(transport){
       alert(' On Failure '+transport)

    }
});

function loadXML(xmlFile) {
   var xmlDocElement =null;
   var xmlDoc = null;

   if (window.ActiveXObject) {
     try {
        // code for IE
        xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async=false;
        xmlDoc.loadXML(xmlFile);
     } catch (e) {
        alert("inside catch::"+e.message);
     }
   } else {
     // code for Mozilla, Firefox, Opera, etc.
     parser=new DOMParser();
     xmlDoc=parser.parseFromString(xmlFile,"text/xml");

     //xmlDocElement=xmlDoc.documentElement;
   }

   //alert('loadXML value  '+xmlDoc)
   return xmlDoc;
}

</script>

最佳答案

看来您遇到了 same origin policy .您必须使用相对路径,否则大多数浏览器只会返回一个空的 responseText

以下 Stack Overflow 帖子可能也与您的问题有关:

作为一种可能的解决方法,您可以设置一个非常简单的 reverse proxy (如果您使用的是 Apache,请使用 mod_proxy)。这将允许您在 AJAX 请求中使用相对路径,而 HTTP 服务器将充当任何“远程”位置的代理。

在 mod_proxy 中设置反向代理的基本配置指令是 ProxyPass。您通常会按如下方式使用它:

ProxyPass     /web-services/     http://third-party.com/web-services/

在这种情况下,浏览器将请求 /web-services/service.xml,但服务器将通过充当 http://third-party 的代理来提供服务。 com/web-services/service.xml

关于javascript - XMLHTTPRequest.status 返回 0 并且 responseText 在 FireFox 3.5 中为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1980880/

相关文章:

javascript - 透明跳脸?

javascript - 在 TinyMCE 中自动将两个破折号转换为 —

javascript - 使用ajax从数据库中删除记录

ajax - REST API - 错误处理的最佳方法

javascript - jQuery .on() 委托(delegate)与匹配嵌套元素的选择器

JAVASCRIPT - 动态创建 Div 不会采用给定的样式(宽度和高度)

php - 动态PDF生成

javascript - JS : Show/hide text field depending on radio button issue

javascript - 为什么 jQuery 的 Ajax AutoComplete 不起作用?

javascript - 如何使用 jquery 从 json 对象中获取值?