访问腾讯存储桶中的文件,跨域问题的解决

报错如上图,场景:前端同事在使用js请求时,引出来的这个问题。

就报错而言不难解决,在对相应的桶做一个cors配置即可。但问题是依旧是报跨域的错,配置了跨域头未生效。

究其原因,大概率是可能在用户第一次访问cdn,cdn会检查数据没有,回源到源站进行访问。源站对比将数据经过cdn反馈给客户端浏览器。浏览器比对Access-Control-Allow-Origin 后,允许正确,所以跨域正常。 当第二个用户访问时,cdn检测有这个文件,所以会直接给客户端反馈缓存页面。由于CDN之所以失败是因为CDN缓存了OSS未配置cors之前的文件及其头部,造成客户端浏览器判断失败,不允许访问。所以出现了跨域失败。

解决办法:

同时也要在存储桶中配置cdn的跨域相关配置

解决方法二:

如果不对存储桶做配置,则可以把url里的协议头 https:// http:// 的改成 //这种自适应的

原文地址:https://www.cnblogs.com/qukun/p/12326006.html

时间: 2024-08-19 08:27:32

访问腾讯存储桶中的文件,跨域问题的解决的相关文章

使用Python boto3上传Windows EC2实例中的文件至S3存储桶中

一.创建终端节点 为什么要创建终端节点,把VPC和S3管理起来呢?如果不将VPC和S3通过终端节点管理起来,那么VPC中EC2实例访问S3存储桶是通过公共网络的:一旦关联起来,那么VPC中EC2实例访问S3存储桶走的就是内部网络.好处有两个:1. 走内部网络就不会产生流量费用:2. 走内部网络速度快,不会因为网络原因导致我们的Python脚本产生异常. VPC->终端节点->创建终端节点->将VPC和S3关联->关联子网 二.在Windows中安装Python3编译器以及boto3

用adb pull命令从android系统中读取文件失败的原因及解决办法

问题:使用adb pull命令从android系统中读取文件失败.显示:Permission denied 原因:是由于文件权限原因引起. 使用ls -l命令查看android系统中的文件权限为: -rw-rw---- app_51   app_51 也就是说,该文件只有app_51用户以及app_51群组拥有读写权限,而adb shell的用户为shell,既不是app_51用户,也不在app_51群组中,所以没有权限读取这个文件.所以就出现了 Permission denied. 解决方法:

解决本地文件跨域的问题,npm install anywhere -g

项目在本地调试时,遇到了本地文件加载跨域的问题 解决方法是,搭建本地服务环境,推荐:anywhere 在node环境下,全局安装anywhere: npm install anywhere -g 安装完成后,在需加载文件的文件夹下运行anywhere即可: anywhere 不添加 -s 命令,会同时打开浏览器访问 http://localhost:8000/ 这个路径. 其他命令:  anywhere -p 8000 # 指定静态服务器的端口号  anywhere -s # 静默执行,不打开浏

Flash文件跨域访问

因企业门户公司公文.通知公告.新闻模块需要控制附件下载权限,考虑前端使用Flash进行展示,如果没有下载权限,则使用swf文件通过flexpaper_flash插件在线预览:有下载权限则直接浏览原文件.可是遇到流程上传附件是保存在BPM站点下的文件夹中,在门户站点中通过flexpaper_flash插件在线预览,看不到flash内容.后来经查证相关资料,是因为flash文件不支持跨域浏览.不过可以通过以下方式进行配置跨域. 门户站点访问BPM站点的flash文件首先会检查BPM站点服务器目录下是

Spring Boot 2中对于CORS跨域访问的快速支持

原文:https://www.jianshu.com/p/840b4f83c3b5 目前的程序开发,大部分都采用前后台分离.这样一来,就都会碰到跨域资源共享CORS的问题.Spring Boot 2 对此提供了很好的解决方法. 更多CORS介绍,请看这里: CORS介绍 1.注解实现 在Spring Boot 2中,提供了注解的方式来对CORS跨域访问进行支持. 1.1 在方法上注解 可以将@CrossOrigin注解在方法上.这样该方法可以被跨域访问. 在方法上标注 1.2 在Controll

解决easyui tabs中href无法跨域跳转

<!DOCTYPE HTML> <html> <head> <meta http-equiv="content-type" content="text/html" /> <meta name="author" content="blog.anchen8.net" /> <script type="text/javascript" src=&q

使用HTML5中postMessage 实现ajax中的POST跨域问题

HTML5中提供了在网页文档之间相互接收与发送信息的功能.使用这个功能,只要获取到网页所在窗口对象的实例,不仅仅同源(域+端口号)的web网页之间可以互相通信,甚至可以实现跨域通信. 浏览器支持程度:IE8+,firefox4+,chrome8+  opera10+ 1. 首先,要想接收从其他的窗口发过来的消息,就必须对窗口对象的message事件进行监听,如下代码: window.addEventListener(“message”, function(){},false); 2. 其次,需要

asp.net mvc 文件跨域上传,接收返回结果

在系统中我们可能有各种各样的文件上传,这样我们可能会把文件模块单独部署一台服务器,这样在上传时就会遇到跨域问题.我们可以先上传到服务端然后通过httpClient等技术再上传到文件服务器,这样就不会存在跨域问题,但是这样多出了服务器中转的一个步骤,现在我们说一下如何在客户端直接跨域上传到文件服务器. 1.文件服务器部署一个文件上传接口(实现技术:webapi,webservice,mvc等等) 文件上传接口示例如下(MVC方式): /// <summary> /// 上传接口 /// <

跨域 webpack + vue-cil 中 proxyTable 处理跨域

跨域 了解同源政策:所谓"同源"指的是"三个相同". 协议相同 域名相同 端口相同 解决跨域 jsonp 缺点:只能get请求 ,需要修改B网站的代码 cors 这个方案缺点 是 ie6 7 兼容不好(倒是不见得要兼容).需要B网站在响应中加头 postMessage 缺点也是 ie6 7 兼容不好(倒是不见得要兼容).需要修改B网站的代码 iframe window.name 传值得方式很巧妙,兼容性也很好.但是也是需要你能修改B网站代码 服务端主动请求B网站,兼