同源策略
不同源的页面之间,不准互相访问数据
- 源
- window.origin 或location可以得到当前源
- 源=协议+域名+端口号
- 如果两个url的协议+域名+端口号完全一致,则同源
- 浏览器规定
- 如果JS运行在源A里,那么就只能获取源A的数据。
- 不能获取源B的数据,即不允许跨域
3.作用
- 保护用户隐私
- 无法区分开发者(XHR请求头里的referer)
解决方法
CORS
添加请求头
Access-Control-Allow-Origin:xxxxx
JSONP
什么是JSONP
浏览器不支持CORS,在当前网站script标签请求另一个网站的JS,在当前网站自建的JS调用被访问网站后台的数据
缺点
- 读不到精确响应码
- 只能发get请求,不支持post