实战 解决tencent-cos腾讯CORS error(跨域资源共享错误)

问题来源

我通过自建cos源cos.facekun.com,托管本博客(www.facekun.com)的静态文件,引用ttf文件时,出现了CORSerror(跨域资源共享错误)

实战 解决tencent-cos腾讯CORS error(跨域资源共享错误)插图

了解CORS

通过了解CORS并解决CORS error。

跨源资源共享(CORS)

跨源资源共享 (CORS)(或通俗地译为跨域资源共享)是一种基于 HTTP 头的机制,该机制通过允许服务器标示除了它自己以外的其它origin(域,协议和端口),这样浏览器可以访问加载这些资源。跨源资源共享还通过一种机制来检查服务器是否会允许要发送的真实请求,该机制通过浏览器发起一个到服务器托管的跨源资源的"预检"请求。在预检中,浏览器发送的头中标示有HTTP方法和真实请求中会用到的头。

跨源HTTP请求的一个例子:运行在 https://domain-a.com 的 JavaScript 代码使用 XMLHttpRequest 来发起一个到 https://domain-b.com/data.json 的请求。

出于安全性,浏览器限制脚本内发起的跨源HTTP请求。 例如,XMLHttpRequest 和 Fetch API 遵循同源策略。这意味着使用这些 API 的 Web 应用程序只能从加载应用程序的同一个域请求 HTTP 资源,除非响应报文包含了正确 CORS 响应头。

所以,问题就在于。我们没有给另一台服务器的响应头部(header)中添加一些信息,告诉浏览器这些资源文件可以被引用来源站点“安全”的使用,导致浏览器就不会正常加载这些资源了,这样就发生了跨域请求错误。

 

解决

在cdn的http-header(自定义响应header头)添加:

实战 解决tencent-cos腾讯CORS error(跨域资源共享错误)插图1

在nginx的http中添加如下代码:

#support cross domain access
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers X-Requested-With;
add_header Access-Control-Allow-Methods GET,POST,OPTIONS;

总结

记得清除浏览器缓存,否则CORS error 即使你修复了,由于缓存还是显示CORS error

实战 解决tencent-cos腾讯CORS error(跨域资源共享错误)插图2

温馨提示:
本文最后更新于:2023-04-08 ,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。
版权声明 1. 本网站名称:稻草人笔记   永久网址:https://www.facekun.com
2. 本文链接:实战 解决tencent-cos腾讯CORS error(跨域资源共享错误): https://www.facekun.com/arts/353.html
3. 部分文章内容来源于网络,仅作为学习展示之用,版权归原作者所有
4. 因部分文章网络流转次数较多,已无法追溯至原作者,若遗漏导致侵犯了您的权益,请您来信告知我,确认后会尽快删除。
5. 本站禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6. 如无特别声明本文即为原创文章仅代表个人观点,版权归《稻草人笔记》所有,欢迎转载,转载请保留原文链接。
THE END
分享
二维码
< <上一篇
下一篇>>