$ .get()在IE中工作但不在FF中工作

时间:2010-08-20 16:41:37

标签: jquery

有人可以告诉我这段代码有什么问题吗?它在IE8中运行良好,但在FF3中运行不正确。

$.get("http://google.com/", function(data) { alert(data); });

它显示警报窗口,但它是空的。

5 个答案:

答案 0 :(得分:8)

我认为这与两个浏览器之间的跨域AJAX限制有关。对于AJAX,FireFox更严格(安全)。您的代码违反了FireFox的"Same Origin Policy

希望这有帮助!

答案 1 :(得分:7)

由于same origin policy,该代码不适用于Firefox IE。您可能已经为网站的区域设置了安全设置,以便能够跨域访问数据:

要更改此行为(您可能应该这样做),请转到Internet设置 - >安全 - >选择当前网站的区域 - >选择自定义级别...

答案 2 :(得分:3)

请阅读$ .get()(或任何其他jQuery AJAX调用)的文档。

http://api.jquery.com/jQuery.get/

它在页面上指定了以下内容:由于浏览器安全限制,大多数“Ajax”请求都遵循相同的原始策略;请求无法成功从其他域,子域或协议中检索数据。

这可能是您问题的根源。

答案 3 :(得分:2)

您无法使用AJAX向其他域发送请求。

在IE中,您显然启用了此选项。

这是一个错误的安全漏洞。

您应该立即重新禁用它

转到“Internet选项”,“安全”,“自定义级别”,“其他”以及禁用“域中的访问数据源”。

答案 4 :(得分:0)

出于安全考虑,AJAX不允许这样的跨站点请求 - 我很惊讶它在IE中有效。不过,它应该在您自己的域中工作。