当我在FF中键入某个URL时,我将返回的XML显示在屏幕上,因此Web服务显然可以正常工作。但是,当我尝试从运行JS的本地HTML文档访问它时,出现了意外的行为。返回的代码为“ 200 OK”,但是根据FireBug,响应部分中没有文本(或者更确切地说,它是一个空字符串)或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标头问题(例如缺少Accept
标头);观察FF发送的标头(可以使用Firebug),并尝试在脚本(setRequestHeader
)中复制它们。
否则,这可能是“相同来源策略”的问题。