如何在 cloud-object-storage CORS PUT 请求中设置 Access-Control-Allow-Credentials header
How to set Access-Control-Allow-Credentials header in cloud-object-storage CORS PUT request
我在 IBM Cloud Object 商店中有一张图片,它需要授权才能获取。但这在浏览器和 iOS(我正在构建一个混合应用程序)中不起作用,但在 Android 中工作正常。调试我看到 Pre-flight 请求因 403 授权错误而失败。在 Andorid 中没有预检请求,因此图像加载正常,但浏览器和 iOS 的 webview 发出预检请求。
我需要以允许授权 Header 和选项 header 的方式设置后端 CORS。
我找到了 this 如何做到这一点,并设置了 Header 和方法,但我找不到设置 Allow-Credentails 的语法。
这是我当前用于设置 CORS 的 PUT 请求 body:
<CORSConfiguration>
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
<AllowCredentials>true</AllowCredentials>
</CORSRule>
</CORSConfiguration>
这失败了,格式错误XML。但是,如果我删除 AllowCredentials,它就可以正常工作。
所以第一个问题是 AllowCredentials 的 XML 语法是什么。
不需要Access-Control-Allow-Credentials header。一旦我将 CORS 设置为这样,OPTIONS 请求的 403 错误就消失了:
<CORSConfiguration>
<CORSRule>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<AllowedMethod>GET</AllowedMethod>
<AllowedOrigin>*</AllowedOrigin>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
我在 IBM Cloud Object 商店中有一张图片,它需要授权才能获取。但这在浏览器和 iOS(我正在构建一个混合应用程序)中不起作用,但在 Android 中工作正常。调试我看到 Pre-flight 请求因 403 授权错误而失败。在 Andorid 中没有预检请求,因此图像加载正常,但浏览器和 iOS 的 webview 发出预检请求。
我需要以允许授权 Header 和选项 header 的方式设置后端 CORS。
我找到了 this 如何做到这一点,并设置了 Header 和方法,但我找不到设置 Allow-Credentails 的语法。
这是我当前用于设置 CORS 的 PUT 请求 body:
<CORSConfiguration>
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
<AllowCredentials>true</AllowCredentials>
</CORSRule>
</CORSConfiguration>
这失败了,格式错误XML。但是,如果我删除 AllowCredentials,它就可以正常工作。
所以第一个问题是 AllowCredentials 的 XML 语法是什么。
不需要Access-Control-Allow-Credentials header。一旦我将 CORS 设置为这样,OPTIONS 请求的 403 错误就消失了:
<CORSConfiguration>
<CORSRule>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<AllowedMethod>GET</AllowedMethod>
<AllowedOrigin>*</AllowedOrigin>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>