跨域

106 阅读1分钟

同源策略

不同源的页面之间,不准互相访问数据

  • window.origin 或location可以得到当前源
  • 源=协议+域名+端口号
  • 如果两个url的协议+域名+端口号完全一致,则同源
  1. 浏览器规定
  • 如果JS运行在源A里,那么就只能获取源A的数据。
  • 不能获取源B的数据,即不允许跨域

3.作用

  • 保护用户隐私
  • 无法区分开发者(XHR请求头里的referer)

解决方法

CORS

添加请求头 Access-Control-Allow-Origin:xxxxx

JSONP

什么是JSONP

浏览器不支持CORS,在当前网站script标签请求另一个网站的JS,在当前网站自建的JS调用被访问网站后台的数据

缺点

  • 读不到精确响应码
  • 只能发get请求,不支持post