为什么这个xmlHttpRequest失败>?

时间:2011-06-29 15:44:40

标签: javascript

http://jsfiddle.net/FarqA/

ajax_info.txt是我计算机上的有效文件。错误返回如下:

Uncaught Error: INVALID_STATE_ERR DOM Exception 11

2 个答案:

答案 0 :(得分:1)

许多浏览器会拒绝通过XMLHttpRequest加载本地文件作为安全措施。 AJAX请求受Same Origin Policy限制,但正如链接的维基百科页面所述,

  

同源检查和相关机制的行为在许多极端情况下没有明确定义,例如对于没有明确定义的主机名或与其URL关联的端口的协议(文件:,数据:等等。)。

加载本地文件(即使使用相对URL)与使用file:协议加载文件相同。许多网络浏览器都有这个限制,原因很简单 - 想象一下在本地计算机上运行恶意HTML文件,它可以加载计算机上的任何文件并将其内容发布到远程服务器。

所以我的猜测是问题是你正在尝试加载本地文件。尝试在本地或远程Web服务器上提供脚本,看看是否能解决问题。 (如果您安装了Python,则可以转到相关目录并运行python -m SimpleHTTPServer 8000,然后转到浏览器中的http://localhost:8000/

答案 1 :(得分:0)

在你的脚本中,每次调用HTTPRequest()都会创建一个新的请求对象,因此永远不会发送带有onReadystateChange处理程序的请求,并且发送的请求没有处理函数。这是你的小提琴的更新版本应该有效:http://jsfiddle.net/HwYUS/