该
document.domain机制旨在允许帧之间进行客户端通信,而不是客户端到服务器的通信。如果从包含页面的一帧
example.com,并从包含页面另一个框架
foo.example.com则二者不能互相访问对方的DOM,除非后者套
document.domain到
example.com你在你的例子显示。
跨域AJAX请求的现代首选机制是“ 跨域资源共享 ”或“
CORS”。此机制涉及使目标资源返回一个特殊的HTTP响应标头,该标头指示允许跨域请求。在您的方案中,您将
test3.php返回以下HTTP响应标头:
Access-Control-Allow-Origin: sub.domain.com
在PHP中,您可以按照以下步骤进行 *** 作:
header("Access-Control-Allow-Origin: sub.domain.com");
您也可以将此标头值设置为仅仅
*是为了允许来自 任何 来源的跨域请求,但请注意,这将允许来自不受您控制的网站的请求。
来自客户端Javascript库的请求通常还包含
X-Requested-With不在CORS允许的标准集中的其他标头,因此可能有必要通过附加的响应标头显式允许此标头:
Access-Control-Allow-Headers: X-Requested-With
仅现代浏览器支持CORS。对于较旧的浏览器,通常的约定是使用JSON-P,这是一种技巧,它利用了一个服务器上的页面能够从另一台服务器加载并执行脚本文件这一事实。此技术要求目标资源是一个有效的Javascript程序,该程序在页面中调用一个函数,因此它不像CORS那样优雅和无缝,但它应在任何支持Javascript的浏览器中都可以工作。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)