解决阿里云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属性。

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

  1. 解决阿里云OSS The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint的办法

    以前有一个上海节点的存储包,一直使用正常.最近购买了一个全国的存储包,发现在上传文件的时候有这个问题. 尝试了很多办法,还提交了工单,都没有解决. 最后解决办法如下: 1.在阿里云OSS管理控制台下, ...

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

    今天在创建Bucket的时候遇到了这个问题 The requested bucket name is not available. The bucket namespace is shared by ...

  3. Markdown图片存储解决方法-利用阿里云OSS

    我们在用markdown写一些博客或者文章的时候,常常需要引用一些图片,一般都是找一个免费的图床上传,然后复制图片链接在我们的markdown文章中.类似像这样: 存在的隐患 一般的免费图片托管网站有 ...

  4. vue用阿里云oss上传图片使用分片上传只能上传100kb以内的解决办法

    首先,vue和阿里云oss上传图片结合参考了 这位朋友的 https://www.jianshu.com/p/645f63745abd 文章,成功的解决了我用阿里云oss上传图片前的一头雾水. 该大神 ...

  5. Spring Boot 集成阿里云 OSS 进行文件存储

    最近因为项目中需要存储很多的图片,不想存储到服务器上,因此就直接选用阿里云的对象服务(Object Storage Service,简称 OSS)来进行存储,本文将介绍 Spring Boot 集成 ...

  6. 阿里云OSS整合

    一.对象存储OSS 为了解决海量数据存储与弹性扩容(主要是静态文件的存储例如图片,语音,视频等),项目中我们通常采用云存储的解决方案- 阿里云OSS. 1.开通"对象存储OSS"服 ...

  7. 整合阿里云OSS

    整合阿里云OSS 一.对象存储OSS 为了解决海量数据存储与弹性扩容,采用云存储的解决方案- 阿里云OSS. 1.开通"对象存储OSS"服务 (1)申请阿里云账号 (2)实名认证 ...

  8. 用DzzOffice管理阿里云OSS

    在DzzOffice分两种方式管理阿里云OSS 1.把阿里云oss作为多人或企业的共享网盘使用. 2.接入个人的阿里云oss管理,可同时管理多个bucket,多个bucket之间可以互传文件. 下面先 ...

  9. 如何用云存储和CDN加速网站图片视频、阿里云OSS的使用(转)

    总有人说阿里云主机带宽小,那只是因为你还停留在单机架构上. 阿里的架构设计,云主机主要用来跑程序的,附件的存储和访问主要靠OSS. 有人又会说了,OSS按存储费+流量双重计费伤不起,只是你不知道OSS ...

随机推荐

  1. java 输出helloword

    1,安装jdk;2,配置环境变量;3,新建D:/Test.java文件;4,文件内容如下:public class Test{ public static void main(String[] arg ...

  2. [转][C#]常用开源项目

    本文来自:http://www.cnblogs.com/sunxuchu/p/6047589.html 新增两个: 纸壳CMS http://www.zkea.net/zkeacms https:// ...

  3. eclipse+maven springMVC搭建

    1.新建项目: 选择Maven Project 选择项目位置,这里我选择的是C:\Users\admin\workspace\practice 选择maven项目类型,这里选择webapp: 填写Gr ...

  4. Loadrunner11在新建Microsoft Word 报告时提示指定的转换无效

    HP Loadrunner11中文教程的学习基本已经结束,最后困扰我的就是这个在创建Microsoft Word 报告时不停的提示“指定的转换无效”的问题.在网上搜索了好长时间,好多朋友回答说没有生成 ...

  5. MPI 并行奇偶交换排序 + 集合通信函数 Sendrecv() Sendvecv_replace()

    ▶ <并行程序设计导论>第三章的例子程序 ● 代码 #include <stdio.h> #include <mpi.h> #include <stdlib. ...

  6. delphi IDE插件 cnpack 使用记录

    CnPack  http://www.cnpack.org Alt+F11 ,添加引用,但是文件列表太多,速度慢,打开添加引用窗口后,工具栏有个hook,去掉hook就用IDE自带的速度很快! GE  ...

  7. tomcat8 安全加固

    本文基于tomcat8.0.24 1.删除文档和示例程序 [操作目的]删除示例文档 [加固方法]删除webapps/docs.examples.manager.ROOT.host-manager [是 ...

  8. artZoom 图片可放大旋转

    资源下载:http://www.sucaijiayuan.com/Js/TuPianDaiMa/774.html 第一步:引入文件 <link rel="stylesheet" ...

  9. 学习 java 编程语言两个月来的感受

    今天是我接触java编程的第81天, 现在的感受是觉得非常快乐, 每次看着自己的写的代码能成功运行的时候那种喜悦是无法言表的, 最初接触电脑还是在小学, 后来到了初中觉得电脑无非就是点点鼠标, 按按键 ...

  10. Python help() 函数

    Python help() 函数  Python 内置函数 描述 help() 函数用于查看函数或模块用途的详细说明. 语法 help 语法: help([object]) 参数说明: object ...