前端图片在需要canvs重绘时出现跨域‘Access-Control-Allow-Origin‘

1.何为跨域

跨域是浏览器的同源策略,不同域名,端口,协议,都会出现跨域的问题。当然浏览器也有支持跨域的一些标签,例如:script,link,img等。

2.图片出现跨域的情况

一般图片只有在需要获取图片源进行重绘才会出现跨域。例如,使用htmlcnavs,还有使用一些插件,截图等。

3.解决方法

3.1自己服务器上的图片

这种情况只要在请求头中添加允许跨域即可

Access-Control-Allow-Origin *;
Access-Control-Allow-Credentials: true;

3.2其他地址的图片

如果没有出现跨域,肯定是对方服务器已经设置了允许跨域。出现跨域,这种情况就需要把域名转成自己服务器的域名就可以了,例如我是gitee的图片链接https://gitee.com/yulinzhu/pic-window/raw/master/1.jpg,我们需要转成 本地域名/get_image/yulinzhu/pic-window/raw/master/1.jpg
图片链接就处理好了,但是这是还不能访问,需要nginx进行代理,代码如下:

location ^~ /get_image/ {
  add_header 'Access-Control-Allow-Origin' '$http_origin' always;
  add_header 'Access-Control-Allow-Credentials' 'true' always;
  add_header 'Access-Control-Allow-Methods' 'GET, OPTIONS' always;
  add_header 'Access-Control-Allow-Headers' 'Accept,Authorization,Cache-Control,Content-Type,DNT,If-Modified-  Since,Keep-Alive,Origin,User-Agent,X-Requested-With' always;
  proxy_pass https://gitee.com/;
}

转载自blogyl.xyz

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值