![](/img/trans.png)
[英]rejected by cors when using withCredentials, despiete access-control-allow-credentials and origin are set
[英]How to set Access-Control-Allow-Credentials header in cloud-object-storage CORS PUT request
我在IBM Cloud Object存储中有一个映像,它需要授权才能进行提取。 但这在浏览器和iOS(我正在构建一个混合应用)中不起作用,但在Android中可以正常工作。 调试我看到飞行前请求失败,并显示403授权错误。 在Andorid中,没有预检请求,因此图像加载正常,但浏览器和iOS的Webview发出了预检请求。
我需要以允许Authorization Header和OPTIONS标头的方式设置后端CORS。
我发现这对如何做到这一点,并且已经设置了页眉和方法,但我不能找出设置允许-Credentails的语法。
这是我当前用于设置CORS的PUT请求正文:
<CORSConfiguration>
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
<AllowCredentials>true</AllowCredentials>
</CORSRule>
</CORSConfiguration>
MalformedXML失败。 但是,如果我删除AllowCredentials,它可以正常工作。
因此,第一个问题是AllowCredentials的XML语法是什么。
不需要Access-Control-Allow-Credentials标头。 我将CORS设置为以下方式后,OPTIONS请求的403错误就消失了:
<CORSConfiguration>
<CORSRule>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<AllowedMethod>GET</AllowedMethod>
<AllowedOrigin>*</AllowedOrigin>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.