javascript - XML 可从 URL 行访问,但不能从脚本访问

标签 javascript xmlhttprequest

当我在 FF 中输入某个 URL 时,我会在屏幕上显示返回的 XML,因此 Web 服务显然正在运行。然而,当我尝试从运行 JS 的本地 HTML 文档访问它时,我得到了意外的行为。根据 FireBug 的说法,返回的代码是“200 OK”但是响应部分中没有文本(或者更确切地说它是一个空字符串)也没有 xml(它是 null)。

这就是我打电话的方式。

var httpObject = new XMLHttpRequest();
httpObject.open("GET", targetUrl, true);
httpObject.onreadystatechange = function () {
  if (httpObject.readyState == 4) {
    var responseText = httpObject.responseText;
    var responseXml  = httpObject.responseXML;
  }
}
httpObject.send(null);

为什么会发生这种情况以及如何解决?

最佳答案

这可能是 HTTP header 问题(例如缺少 Accept header );观察 FF 发送的 header (您可以使用 Firebug)并尝试在脚本中复制它们 (setRequestHeader)。

否则,这可能是“同源策略”问题。

关于javascript - XML 可从 URL 行访问,但不能从脚本访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13341712/

相关文章:

ajax - JSF ViewState 修复 IE responseXML

javascript - CryptoJS 是否容易受到 OpenSSL Heartbleed 漏洞的影响?

javascript - 如何在不在外部缓存的情况下将 'this' 传递给 Promise?

javascript - 如何使用 Javascript 从字符串中间提取文本?

javascript - 带 JS 变量的 PHP 系统调用

jquery - 使用jquery自动刷新div

javascript - 从回调中创建 XMLHttpRequest 如何影响缓存?

javascript - 使用 Javascript 和 Jquery 的网站加载器进度条图像

JavaScript:仅当单词包含整数 0-9 时,如何从字符串中删除最后一个单词?

javascript - 试图跟踪 firefox 中未完成的 AJAX 请求的数量