通过阿里云CDN跨域访问时发生报错的解决方法

作者阿里云代理 文章分类 分类:新闻快递 阅读次数 已被围观 1041

问题描述

•问题场景一:CDN配置的加速源站中,请求携带“credentials”参数发生报错。

•问题场景二:CDN加速OSS时,客户端请求时发生报错。

报错内容如下。

问题原因

•问题场景一:CDN配置的加速源站中,没有在请求头和源站的响应头中配置“credentials”参数。

•问题场景二:CDN加速OSS时,OSS不支持设置HTTP响应头“Access-Control-Allow-Credentials”。

解决方案

•问题场景一:CDN配置的加速源站中,需要源站设置返回头中有参数“Access-Control-Allow-Credentials:true”。

•问题场景二:CDN加速OSS时,在请求时不要设置“Access-Control-Allow-Credentials”参数,如果无法修改请咨询阿里云技术支持,以申请配置域名的HTTP头“Access-Control-Allow-Credentials:true”。

更多信息

Access-Control-Allow-Credentials参数说明

•“Access-Control-Allow-Credentials”响应头表示是否可以将对请求的响应暴露给页面。返回“true”则可以,其他值均不可以。

•“credentials”可以是Cookies、Authorization headers或TLS client certificates。当作为对预检请求的响应的一部分时,表示是否为真正的请求可以使用“credentials”。注意简单的“GET”请求没有预检,所以如果对资源的请求带了“credentials”,返回这个资源时,响应就会被浏览器忽视,不会返回到web内容。

•“Access-Control-Allow-Credentials”响应头在工作中与“XMLHttpRequest.withCredentials”或Fetch API的“Request()”构造器中的“credentials”选项结合使用。必须在前后端配置“credentials”,即“Access-Control-Allow-Credentials”header、XHR和Fetch Request中都要配置,才能使携带“credentials”的CORS请求成功。

适用于

•CDN

阿里云代理商   阿里云合作伙伴

本公司销售:阿里云、腾讯云、百度云、天翼云、金山大米云、金山企业云盘!可签订合同,开具发票。

我有话说: