Javascript 可从URL行访问XML,但不能从脚本访问
当我在FF中键入某个URL时,返回的XML将显示在屏幕上,因此web服务显然正在工作。然而,当我试图从运行JS的本地HTML文档中访问它时,会出现意外的行为。根据FireBug,返回的代码是“200 OK”,但在响应部分中没有文本(或者说它是空字符串)或xml(它是Javascript 可从URL行访问XML,但不能从脚本访问,javascript,xmlhttprequest,Javascript,Xmlhttprequest,当我在FF中键入某个URL时,返回的XML将显示在屏幕上,因此web服务显然正在工作。然而,当我试图从运行JS的本地HTML文档中访问它时,会出现意外的行为。根据FireBug,返回的代码是“200 OK”,但在响应部分中没有文本(或者说它是空字符串)或xml(它是null) 这就是我打电话的方式 var httpObject = new XMLHttpRequest(); httpObject.open("GET", targetUrl, true); httpObject.onreadyst
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
)
否则,这可能是“同源策略”问题。是否在同一域中?如果没有,则必须使用JSONP处理跨域请求。