开发者社区> 问答> 正文

使用CDN加速的OSS跨域访问失败,是为什么?

使用CDN加速的OSS跨域访问失败,是为什么?

展开
收起
保持可爱mmm 2020-03-30 15:22:12 1003 0
1 条回答
写回答
取消 提交回答
  • 问题原因 用户第一次访问CDN时,CDN会检查是否包含数据,然后回源到源站进行访问。源站进行对比将数据经过CDN时会反馈给客户端浏览器。浏览器比对Access-Control-Allow-Origin后,允许正确则跨域正常。 当第二个用户访问时,CDN检测到这个文件,会直接给客户端反馈缓存页面。CDN之所以跨域访问失败是因为CDN缓存了OSS未配置CORS之前的文件及其头部,造成客户端浏览器判断失败,不允许访问。

    解决方案 参考如下步骤,配置对应跨越访问参数的值即可。

    登录CDN控制台。 在左侧导航栏,单击 域名管理。 在域名管理页面,单击目标域名对应的 管理。 在指定域名的左侧导航栏,单击 缓存配置 > HTTP头。

    在HTTP头设置页面,单击 添加。 分别配置HTTP头的Access-Control-Allow-Origin、Access-Control-Allow-Methods和Access-Control-Max-Age参数值,配置示例如下。

    配置以上参数之后只要在CDN节点访问就会包含3个头部信息,不会影响正常访问。且在跨域验证时保证了正常使用。测试结果如下。 TB1nRb4JFXXXXaZXXXXXXXXXXXX-811-372.png

    2020-03-30 15:27:33
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
OSS运维进阶实战手册 立即下载
《OSS运维基础实战手册》 立即下载
OSS运维基础实战手册 立即下载