我在IBM Cloud对象存储中有一个镜像,它需要授权才能获取。但这在浏览器和iOS(我正在构建一个混合应用程序)中不起作用,但在安卓系统中运行良好。调试时,我看到飞行前请求失败,出现403授权错误。在Andorid,没有印前检查请求,所以图像加载正常,但浏览器和iOS的webview发出了印前检查请求。
我需要设置后端CORS的方式,它允许授权头和选项头。
我找到了如何做的this,并设置了头和方法,但我找不到设置Allow-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语法是什么。
发布于 2018-08-18 14:59:21
不需要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>https://stackoverflow.com/questions/51786195
复制相似问题