同源策略和跨域资源共享
Posted microheart
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了同源策略和跨域资源共享相关的知识,希望对你有一定的参考价值。
最近做项目,写的接口需要别的服务器来调用,我自己在Postman上测试发现接口正常,数据正常返回,但是在网页中就是不能正常加载数据。查了相关资料才发现有跨域问题。
同源策略(Same-Origin Policy)
同源策略,它是由Netscape提出的一个著名的安全策略。现在所有支持javascript 的浏览器都会使用这个策略。所谓同源是指,域名,协议,端口相同。当一个浏览器的两个tab页中分别打开来 百度和谷歌的页面当浏览器的百度tab页执行一个脚本的时候会检查这个脚本是属于哪个页面的,即检查是否同源,只有和百度同源的脚本才会被执行。 如果非同源,那么在请求数据时,浏览器会在控制台中报一个异常,提示拒绝访问。注意同源不是JS限制的,是浏览器限制的。
这样做是为了安全考虑,因为浏览器向一个域发起请求时总是会带上这个域及其父域的cookies,假设没有同源限制,A网站的API可以被任何来源的AJAX请求访问,包括获取用户的隐私信息,只看用户有没有登录,现在有个坏人做了一个网站B,坏人在B网页中用AJAX访问A网站的API,如果一个用户访问B之前已经登录了A,那这个请求包含A网站的cookie信息,也就会被A网站认为用户已经登录,这样用户在A网站的隐私信息就泄露给了控制B网站的坏人。
跨域资源共享(Cross-Origin Resource Sharing)
这篇文章写得十分详细 链接
以上是关于同源策略和跨域资源共享的主要内容,如果未能解决你的问题,请参考以下文章