当我在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)中复制它们。

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

09-26 01:43