解决阿里云OSS跨域问题

解决阿里云OSS跨域问题

现象

本人项目中对阿里云图片请求进行了两次,第一次通过img标签进行,第二次通过异步加载获取。第一次请求到图片,浏览器会进行缓存,随后再进行异步请求,保存跨域失效。

错误信息如下:

Failed to load http://cdn.imayuan.com/831ccd4741a7a56d85f6698a21f4ca69.svg: No ‘Access-Control-Allow-Origin‘ header is present on the requested resource. Origin ‘http://localhost:8601‘ is therefore not allowed access.

解决

  1. 通过http请求状态码判断第二次异步加载是使用的缓存,状态码是200(from cache) 。附:跟缓存有关的http状态码有:

    • 200 OK (from cache) 是浏览器没有跟服务器确认,直接用了浏览器缓存
    • 304 Not Modified 是浏览器和服务器多确认了一次缓存有效性,再用的缓存
  2. 随后多次尝试清理缓存无效,后来发现原因是通过img标签请求始终在异步请求前面,故尝试在所有img标签加载完成后清理缓存,则不会出现跨域问题。
  3. 发现问题出来img标签上面,服务端做了对跨域的配置后,响应里面应该有Access-Control-Allow-Origin的配置,但是通过抓取请求发现没有。
  4. 结论阿里云oss的img标签需要手动配置跨域。
    <img crossOrigin="anonymous"/>

crossorigin属性:

anonymous:如果使用这个值的话就会在请求中的header中的带上Origin属性,但请求不会带上cookie和其他的一些认证信息。

use-credentials:这个就同时会在跨域请求中带上cookie和其他的一些认证信息。

在使用这两个值时都需要server端在response的header中带上Access-Control-Allow-Credentials属性。

原文地址:https://www.cnblogs.com/wwyz/p/9210856.html

时间: 2024-08-03 22:30:16

解决阿里云OSS跨域问题的相关文章

阿里云OSS跨域设置配置后不生效

OSS跨域资源共享(CORS)错误及排除 跨域资源共享(Cross Origin Resource Sharing,简称 CORS)的介绍及配置请参看跨域资源共享最佳实践. CORS配置有以下几项: 来源(AllowedOrigin)允许跨域请求的来源,可以同时指定多个.配置时需带上完整的域信息,例如http://10.100.100.100:8001或https://www.aliyun.com.注意, 不要遗漏了协议名http或https ,如果端口不是默认的80,还需要带上端口.如果不能确

解决阿里云OSS The requested bucket name is not available的办法

今天在创建Bucket的时候遇到了这个问题 The requested bucket name is not available. The bucket namespace is shared by all users of the system. Please select a different name and try again. 解决方法如下: 1.bucket命名语法不符合规定. bucket命名只允许小写字母.数字.中划线(-),且不能以短横线开头或结尾 2.特殊词汇不能用 如:h

用DzzOffice管理阿里云OSS

在DzzOffice分两种方式管理阿里云OSS 1.把阿里云oss作为多人或企业的共享网盘使用. 2.接入个人的阿里云oss管理,可同时管理多个bucket,多个bucket之间可以互传文件. 下面先介绍第一种方式,OSS多人用作网盘使用. 首先打开DzzOffice开始菜单,在应用列表中打开”云设置和管理“应用 打开后界面如下 先确保要使用的OSS是可用状态 然后点击“企业盘” 这里的企业盘名称是可以修改的,根据自己想起的名字. 我在企业中用,我把它改成我们企业的名称“乐云网盘”一会在网盘管理

简单上传图片到阿里云OSS

OSS主要为用户提供数据存储服务,用户可以通过以下操作来处理OSS上的数据: 1.创建.查看.罗列.删除 Bucket: 2.修改.获取Bucket的访问权限: 3.上传.查看.罗列.删除Object/Object Group: 4.访问时支持If-Modified-Since和If-Match等HTTP参数.特点具体如下: 1.易用性:简单易用,便于管理,深度集成数据处理服务: 2.高可靠:多重冗余备份,服务设计可用性不低于99.99%: 3.强安全:多层次安全防护,支持跨区域复制.异地容灾机

The difference between the request time and the current time is too large.阿里云oss上传图片报错

The difference between the request time and the current time is too large. 阿里云oss上传图片的时候报错如上, 解决办法,把系统时间自动同步成对应的时区的时间.

详解wordpress如何把文件保存到阿里云OSS上!

自己搞了一个Wordpress的博客,装完之后一直晾着没管,最近闲来开荒.为了减小服务器的带宽.存储.CUP的压力,决定把博客中的所有文件都保存到阿里云OSS上面. 关于这个问题,自己去调用OSS的SDK然后再去修改wordpress这种方式肯定是费时又费力,哪怕是你闲得蛋疼也不会这么干,何况是忙到蛋疼的人.所以,我很机智的去搜了一下解决方案很幸运,已经有相关的wordpress差距可以解决这个问题. 下面记录一下操作过程. 1.首先你得有OSS吧,然后新建一个Bucket,比如我这里建了一个w

阿里云 OSS 如何设置防盗链, 上个月图床流量耗费50G+,请求次数10W+,什么鬼?

欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.exception.site/essay/how-to-set-aliyun-oss-http-referer 目录 一.背景 二.背后有啥猫腻 三.什么是盗链? 四.为什么会被盗链? 五.OSS 设置防盗链 六.验证一下效果 七.另外一些应对手段 一.背景 小哈前天陆续接到三个电话,但都因为忙于工作.下雨天等各

wget下载阿里云oss的文件报错403

问题 在实际工作中,我们为了方便,会将一些脚本储存在云端(阿里云OSS),这样方便我们使用和下载,但是在实际的使用过程中,我们会遇到一些问题. 示例链接:https://djxlsp.oss-cn-shenzhen.aliyuncs.com/shell/tcp-status.sh?OSSAccessKeyId=LTAI8hlsoWKOIPS8&Expires=1561364265&Signature=w2i1aL3sfHcX%2Fj06N52%2BhSvQaJU%3 然后我们通过 wget

thinkphp集成系列之阿里云oss

web2.0时代:除了纯信息展示类的网站:基本都是有文件上传功能的: 最不济你得让用户换个头像吧:但是随着业务的发展: 如果上传的文件都和网站程序源代码放在一起:那是有相当多的弊端的: 1:静态文件会占用大量带宽: 2:服务器的成本略高: 常规的做法是把php源代码放到一台服务器上:图片等静态文件放在另一台服务器上: 当一个神奇的“云”时代的到来后:一切就变的更加简单了: 在业务还比较小的时候:我们无需大费周折的去搞一台静态文件服务器:直接使用第三方的即可: 好了:洛里啰嗦了半天:下面请出本篇博