当我在 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/