关于http:同源策略Sameorigin-policy是什么

4次阅读

共计 737 个字符,预计需要花费 2 分钟才能阅读完成。

一、同源策略是什么?

一个 URL 有三局部组成:协定、域名(指向主机)、端口,只有这三个完全相同的 URL 能力称之为同源。如下,能和 http://www.example.com/dir/index.html 同源的是?

URL 后果 起因
http://www.example.com/dir2/other.html 同源 只有门路不同
https://www.example.com/secure.html 不同源 协定不同
http://www.example.com:81/dir/etc.html 不同源 端口不同 (http:// 默认端口是 80)
http://news.example.com/dir/other.html 不同源 域名不同

二、父域名与子域名

能够通过设置 document.domain,让子域名和父域名通过同源策略的检测。

// 1、子域名上面的页面
http://store.company.com/dir/other.html 

// 2、脚本代码中批改
document.domain = "company.com";

// 3、再去拜访父域名上面的页面,能够不被跨域拦挡
fetch("http://company.com/dir/page.html")

备注:然而如果端口不是默认 80,也会失败,因为 document.domain = "company.com"; 会把端口设置为 null


三、跨域拜访

跨域拜访的解决方案是 CORS,详情,看这里!


四、window.postMessage(不举荐)

跨域拜访也能够通过 window.postMessage 来实现,不过不太举荐,很容易造成平安问题。window.postMessage – 具体用法说明!


五、参考文档
  • 同源策略 (Same-origin policy) 是什么?
正文完
 0