猿问

XMLHttpRequest状态为0(responseText为空)

无法使用XMLHttpRequest获取数据(状态0,responseText为空):


xmlhttp = new XMLHttpRequest();

xmlhttp.open(“ GET”,“ http://www.w3schools.com/XML/cd_catalog.xml”,true);

xmlhttp.onreadystatechange = function() 

{

  if(xmlhttp.readyState == 4)

    alert(“ status” + xmlhttp.status);

}

xmlhttp.send();

它警告“状态0”。


与localhost请求的情况相同(cd_catalog.xml保存为本地文件)


xmlhttp.open(“ GET”,“ http://localhost/cd_catalog.xml”,true);

但是使用本地主机IP请求


xmlhttp.open(“ GET”,“ http://127.0.0.1/cd_catalog.xml”,true);

并与本地文件请求


xmlhttp.open(“ GET”,“ cd_catalog.xml”,true);

一切正常(状态200)


什么会导致在线请求出现问题(状态= 0)?


PS:实时HTTP标头显示在所有4种情况下一切正常:


  HTTP / 1.1 200 OK

  内容长度:4742

PS2:VMWare上的Apache本地Web服务器(主机操作系统Win7,来宾操作系统Ubuntu,网络适配器– NAT)。浏览器– Firefox。


富国沪深
浏览 1768回答 3
3回答

largeQ

通过文件方案在浏览器中打开包含脚本的html文件时,状态为0。确保将文件放在您的服务器(apache或tomcat等)中,然后通过浏览器中的http协议将其打开。(即http://localhost/myfile.html)这是解决方案。

慕田峪7331174

如果服务器使用以下标头响应OPTIONS方法以及GET和POST(无论您使用的是哪种方法):Access-Control-Allow-Origin: *可能行得通。似乎在FireFox 3.5和rekonq 0.4.0中。显然,有了该标头和对OPTIONS的初始响应,服务器对浏览器说:“继续进行此跨域请求。”
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答