有人能告诉我如何使用子域名对主域名进行 ajax 调用吗?
我知道它需要使用 CNAMES 之类的东西,但我还是有点不明白。我想对 ajax.samedomain.com 进行 AJAX 调用,然后它会引用 samedomain.com 的数据/脚本。
我也知道我需要以某种方式绕过跨域安全问题,但我对此也不确定。
答案1
目前,你无法以浏览器中立的方式绕过同源策略安全性,即使所有名称最终都指向同一个位置。请参阅http://en.wikipedia.org/wiki/Same_origin_policy了解更多信息。您可以通过在隐藏的 iframe 中使用来自同一域的页面中包含的脚本文件加载的内容来在一定程度上解决这个问题,尽管这不像 AJAX 请求那么方便。
您正在考虑的 DNS 选项可能是 DNS 中毒攻击之一,或类似攻击,如果未应用某些安全补丁,则可用于启用跨域脚本以达到恶意目的。
有HTML5postMessage
方法它可用于让来自不同位置的脚本相互交流,但并非所有常见浏览器都支持此功能,因此如果您依赖该功能,则会减少潜在的目标受众。
答案2
查看document.domain
在 javascript 中设置该属性。我知道我以前曾使用它来允许跨子域(x.company.com 和 y.company.com)的窗口之间进行 javascript 更新。对于 Ajax 来说可能也很好用。