【发布时间】:2011-09-10 19:10:30
【问题描述】:
我读过设置document.domain = "example.com" 让我可以从子域访问父域。
反之亦然吗?
假设我的主站点在 http://example.com 下运行。我想通过 AJAX(GET 和 POST)访问的所有 API 函数都托管在 http://api.example.com 上。
我可以从example.com 访问api.example.com 吗?
编辑:再看document.domain,我认为这不会解决问题。调用 api.example.com 的结果不是必需的 HTML,而是来自 API 服务器上运行的 PHP 脚本的输出。它可以是 JSON、纯文本等,因此无法为此设置 document.domain(因为它不是 iframe)。
【问题讨论】:
-
简单地配置你的服务器,让来自
api.example.com的所有资源都返回这个HTTP头:Access-control-allow-origin: http://example.com -
也就是Cross Origin Resource Sharing,简称CORS。
-
只是一个警告:CORS 还没有完全跨浏览器,所以你现在最好使用 JSONP。
-
@Casey 是的,IE6 和 IE7。我希望 OP 不必支持那些...
标签: javascript cross-domain cross-domain-policy