【发布时间】:2011-06-27 17:13:24
【问题描述】:
无法通过 XMLHttpRequest 获取数据(状态 0 且 responseText 为空):
xmlhttp=新的 XMLHttpRequest(); xmlhttp.open("GET","http://www.w3schools.com/XML/cd_catalog.xml", true); xmlhttp.onreadystatechange=函数() { 如果(xmlhttp.readyState==4) 警报(“状态” + xmlhttp.status); } xmlhttp.send();它会提醒“状态 0”。
与localhost请求相同的情况(cd_catalog.xml保存为本地文件)
xmlhttp.open("GET","http://localhost/cd_catalog.xml", true);但是使用 localhost IP 请求
xmlhttp.open("GET","http://127.0.0.1/cd_catalog.xml", true);并与本地文件请求
xmlhttp.open("GET","cd_catalog.xml", true);一切正常(状态 200)
在线请求出现问题 (status=0) 的原因是什么?
PS:Live HTTP Headers 显示在所有 4 种情况下一切正常:
HTTP/1.1 200 正常 内容长度:4742PS2:VMWare 上的 Apache 本地 Web 服务器(主机操作系统 Win7、来宾操作系统 Ubuntu、网络适配器 – NAT)。浏览器 – 火狐。
【问题讨论】:
-
你的测试页面是否在
http://127.0.0.1? ;) -
是的。
<a href="/default/index/tourl?u=aHR0cDovLzEyNy4wLjAuMS9DRENhdGFsb2dUZXN0Lmh0bWw%3D" rel="nofollow" target="_blank">127.0.0.1/CDCatalogTest.html</a> -
你回答了你的问题。
XMLHttpRequest不能做跨域请求。不过有一些解决方法。以 jquery 为例。 -
使用php获取文件。小解决方法:jquery-howto.blogspot.com/2009/04/…
-
@meze:跨域调用可以使用 jQuery。但是,由于 jQuery 是在 JavaScript 中实现的,它怎么能不能与普通的 JavaScript 一起工作呢?对我来说完全是无稽之谈。 jQuery 是否使用了某种讨厌的解决方法?
标签: javascript ajax xmlhttprequest