【js学习笔记-080】-----不严格的同源策略

本文介绍了三种跨域资源共享的方法:通过设置Document的domain属性来绕过同源策略限制;使用Cross-Origin Resource Sharing (CORS) 标准允许跨域HTTP请求;以及利用window对象的postMessage方法实现不同文档间的跨文档消息传递。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


1.       设置Document的domain属性:

   对于使用多个子域的大站点home.example.com 可能需要读取order.example.com文档的属性。根据同源策略它是不被允许的,那么为了支持这种多域名站点,可以使用Documnet.domain属性。

默认它存放的是载入文档的服务器的主机名。可以设置这一属性,不过使用字符串必须具有有效的域前缀或它本身。所以它的值必须有点号,不能设置为"com"或其它顶级域名

如果两个窗口包含的脚本把domain设置成相同的值,那么这两个窗口就不再受同源策略的约束,它们可以相互读取对方的属性。

 

2.       跨域共享资源

Cross-OriginResource Sharing ----这个标准草案用新的“Origin”请求头和“Access-Control-Allow-Origin”响应头来扩展HTTP。它允许服务器用头信息显式地列出源,或使用通配符来匹配所有的源并允许由任何地址请求文件。firefox3.5 safari 4 可以使用这种头信息来允许跨域http请求,同样XMLHttpRequest就不会被同源策略所限制了。

3.       跨文档消息

    允许来自一个文档的脚本可以传递文本消息到另一个文档里的脚本,而不管脚本的来源是否相同。调用window对象的postMessage()方法,可以异步传递消息事件(可以用onmessage事件句柄处理函数来处理它)到窗口的文档里。注意一个文档里的脚本还是不能调用在其它文档里的方法和读取属性。但它可以用这种消息传递技术来实现安全的通信。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值