首先
在了解非同源策略请求之前,需要先知道什么是同源策略。
1.什么是同源?
同源:是指——【协议,域名,端口号】都相同的多个地址。
2.什么是同源策略?
同源策略(Same origin policy)是一种约定,它是浏览器的一个安全功能,为了保护本地数据不被,非同源地址获取来的代码数据污染。
通俗来说:就是一个页面( http://112.55.55.110:8000/user/data ),只能执行,从同源地址 ( 例:http://112.55.55.110:8000/profile/amyacker )请求过来的Js代码,同源的代码肯定是安全的。
如果是从非同源地址( 例:http://119.55.55.110:8000/amyacker ) 请求的Js代码,浏览器不知道这个代码是否安全,所以不会执行。
3.为什么会出现跨域?
通俗来说就是,庞大的数据资源,不可能全都存储在同一个服务器中,所以必然会出现,要去非同源的地址中,获取数据的情况。
4.什么是跨域?
跨域,也称为非同源策略请求,就是去非同源地址获取数据的行为。
只要页面,向非同源地址,发出了ajax / fetch请求,此时就出现了跨域问题。
5.如何解决跨域?
① JSONP
② 服务器端设置(CORS)MDN阐述地址
③ 使用代理
对于跨域的阐述和解决,分享下一位博主的博文。博文地址