什么是跨域(Cors)?

当服务器向一个不同源的域名发起非简单请求时(如PUT,DELETE),大部分主流浏览器都会进行拦截行为,禁止请求。
什么是不同源呢? 请看下面几组示例:

1
2
3
1. baidu.com:80  baidu.com:8080 //不同源
2. http://baidu.com https://baidu.com //协议不同,不同源
3. baidu.com baidu.net //域名不同不同源

总结来说,当请求时的端口,协议,域名不同源时,就会触发浏览器的跨域拦截策略

如何解决跨域

前段时间在本地请求我的图片api时,查看控制台发现图片出现跨域,无法访问,这才想起cdn我并没有配置跨域策略,于是就有了这篇文章
这里以腾讯云的cdn为例
打开域名cdn的管理界面,找到高级配置,界面如下图

然后点击新增规则,添加如下图

保存后等待部署,跨域即被解决

同理,在请求中添加Access-Control-Allow-Origin响应头,也可解决跨域问题