-1

我正在开发一个网站,表单依赖于 jQuery $.ajax,它将发布数据然后发回结果。

但我有一个问题。

如果我通过“ http://site.com/ ”访问该站点并单击表单上的提交按钮,则它没有问题。

但是,如果我通过“ http://www.site.com/ ”访问该站点并单击表单上的提交按钮,则会向我抛出错误。

有人知道为什么吗?

谢谢。

4

2 回答 2

2

这称为跨域限制。AJAX 只会让您进入与您用来加载页面的域相同的域,只有极少数例外。可以使用 JSONP 进行隧道传输。

这是一种安全措施。想象一下,如果远程攻击者能够 AJAX 输出您的信息 - AJAX 调用非常容易输入!浏览器制造商将其添加为防止信息泄露的安全措施(这已经太常见了——XSS、CSRF 等)。

如果它们必须在本地调用,请考虑不要在脚本中对 URL 进行硬编码。

于 2013-03-27T23:37:33.753 回答
2

您很有可能无法以任何方式访问该站点,www因为站点所有者尚未设置 DNS 以使用www前缀。

于 2013-03-27T23:37:44.060 回答