浏览器之前端跨域原因及方法和优缺点

112 阅读1分钟

同源策略

协议/域名/端口任意一个不一样

  • Cookie、LocalStorage和IndexDB无法读取
  • DOM无法获得
  • AJAX请求不能发送

跨域产生原因

前端请求和后端的协议/域名/端口任意一个不一样,响应被浏览器拦截

跨域方法

1.jsonp

  • 后端发送方法名和参数
  • 前端写个方法调用参数的,接受响应后自动执行
  • 优点:兼容性好,大部分主流浏览器都能用
  • 缺点:容易注入恶意代码,而且只支持get
    2.cors
  • 后端响应头加cors
  • 前端加个允许加cookie的代码
  • 优点:使用简单,只需要在后端做配置,支持所有http请求
  • 缺点:兼容性不好,不支持ie8以下的
    3.nginx反向代理
  • 前后端都通过一个代理服务取得
  • 优点:可以实现负载均衡,安全性高
  • 缺点:每次代理都有两次连接请求,服务器压力大