为什么设置document.domain不能允许AJAX请求到父域?

为什么设置document.domain不能允许AJAX请求到父域?,第1张

为什么设置document.domain不能允许AJAX请求到父域?

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的浏览器中都可以工作。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4936323.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-13
下一篇 2022-11-13

发表评论

登录后才能评论

评论列表(0条)

保存