html2canvas icon indicating copy to clipboard operation
html2canvas copied to clipboard

cors 跨域 image不显示

Open w493189140 opened this issue 5 years ago • 6 comments

已解决 解决方案 服务端加 Access-Control-Allow-Origin * 使用oss 本人alioss 跨域设置 配置好 暴露headers Etag x-oss-reques-id 图片文件设置Http头 Cache-Control 为no-cache

w493189140 avatar Jun 11 '19 02:06 w493189140

跨域原因是 图片被请求了两次,一次是图片直接返回 没有触发跨域 第二次是ajax请求是浏览器缓存 所以会出现跨域问题

w493189140 avatar Jun 11 '19 06:06 w493189140

跨域原因是 图片被请求了两次,一次是图片直接返回 没有触发跨域 第二次是ajax请求是浏览器缓存 所以会出现跨域问题

请问你是怎么解决的

yupeng2015 avatar Aug 21 '19 05:08 yupeng2015

这个属性有时候不一定有效啊..

langyuxiansheng avatar Oct 13 '20 03:10 langyuxiansheng

cache-control是在阿里云OSS设置的吗?

jianzhou520 avatar Dec 07 '20 14:12 jianzhou520

跨域原因是 图片被请求了两次,一次是图片直接返回 没有触发跨域 第二次是ajax请求是浏览器缓存 所以会出现跨域问题

同问

YangHeLi avatar Jul 20 '21 13:07 YangHeLi

这个原因是oss同源不会返回 access-control-allow-origin,会影响到:在直接ajax请求图片时,如果有缓存的情况下,判断没有出现access-control-allow-origin,就会跨域 我想到了两种解决办法:

  1. 在阿里云OSS中配置单个资源的header不缓存,也就是把 cache-control 设置为 no-cache.(这也是我目前使用的方法)。但是会导致资源没办法缓存,如果是大批量的并不适用
  2. 先用ajax请求一次资源图片。既然浏览器请求资源被认为同源不会返回 access-control-allow-origin,那就使用ajax主动触发一次请求资源,这样的话Origin为当前网站的域名地址,oss就会返回 access-control-allow-origin,后续再发送同样的资源请求的情况下就不会被认为跨域

dora-ljh avatar Jan 25 '24 02:01 dora-ljh