跨域

97 阅读1分钟

同源策略

跨域是为了解决浏览器的安全机制,即不同源的地址之间不能访问资源和操作页面。

前端常用的跨域方案

1.cors

cors需要浏览器和服务器都支持,且cors请求分为简单请求,复杂请求,这里只列举简单请求

简单请求

简单请求需要同时满足几个条件

  • 请求的方法必须为,GET,POST,HEAD中的一种
  • 请求头的集合不超过,
    • Accept
    • Accept-Language
    • Content-Language
    • Content-type:值必须为
      • text/plain
      • multipart/form-data
      • application/x-www-form-urlencoded中的一个

2.jsonp

原理是创建一个script标签,向浏览器发送请求。浏览器接收到请求之后,将数据包在一个回调函数中传递回来。坏处是只支持GET请求,不太安全。好处是可以兼容ie和请求其他不支持cors的网站

其他

跨域的方案不止cors和jsonp,也可以nginx,websocket等其他技术,这里就不过多赘述