Web前端之路让前端飞码农的世界

用CORS和JSONP解决跨域问题

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

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

CORS

res.header("Access-Control-Allow-Origin", "*");

JSONP

script.src = "http://www.baidu.com/?callback=handleResponse"
function handleResponse(res){
  //res是服务端返回的数据
}

类似的还有 图像Ping,因为一个网页可以从任何网页中加载图片,不用担心跨域问题,所以,凡是拥有src这个属性的标签都拥有跨域的能力,缺点是无法访问响应文本,适用于浏览器和服务器间的单向通信

let img = new Image();
img.src = "http://"

两者的区别

demo地址

上一篇 下一篇

猜你喜欢

热点阅读