用CORS和JSONP解决跨域问题

  • 为什么会有跨域问题?
    因为浏览器的同源策略
  • 同源策略是什么?
    协议,域名,端口都相同
  • 如果非同源,会受到什么限制?
    (1) Cookie、LocalStorage 和 IndexDB 无法读取
    (2) DOM 无法获得
    (3) AJAX 请求不能发送

怎样解决非同源发送请求,也就是跨域问题呢,有以下几种方法

CORS

  • 客户端可以使用XMLHttpRequest发送请求,请求路径为绝对路径,服务端返回的数据在xhr.responseText
  • 如果服务器认为可以接受,就在Access-Control-Allow-Origin中返回相应的源或 *
  • 克服了AJAX只能同源使用的限制
res.header("Access-Control-Allow-Origin", "*");

JSONP

  • 通过使用动态

你可能感兴趣的:(用CORS和JSONP解决跨域问题)