我正在开发一个网站,表单依赖于 jQuery $.ajax,它将发布数据然后发回结果。
但我有一个问题。
如果我通过“ http://site.com/ ”访问该站点并单击表单上的提交按钮,则它没有问题。
但是,如果我通过“ http://www.site.com/ ”访问该站点并单击表单上的提交按钮,则会向我抛出错误。
有人知道为什么吗?
谢谢。
我正在开发一个网站,表单依赖于 jQuery $.ajax,它将发布数据然后发回结果。
但我有一个问题。
如果我通过“ http://site.com/ ”访问该站点并单击表单上的提交按钮,则它没有问题。
但是,如果我通过“ http://www.site.com/ ”访问该站点并单击表单上的提交按钮,则会向我抛出错误。
有人知道为什么吗?
谢谢。
这称为跨域限制。AJAX 只会让您进入与您用来加载页面的域相同的域,只有极少数例外。可以使用 JSONP 进行隧道传输。
这是一种安全措施。想象一下,如果远程攻击者能够 AJAX 输出您的信息 - AJAX 调用非常容易输入!浏览器制造商将其添加为防止信息泄露的安全措施(这已经太常见了——XSS、CSRF 等)。
如果它们必须在本地调用,请考虑不要在脚本中对 URL 进行硬编码。
您很有可能无法以任何方式访问该站点,www
因为站点所有者尚未设置 DNS 以使用www
前缀。