代码之家  ›  专栏  ›  技术社区  ›  RamY

如何在云对象存储CORS PUT请求中设置访问控制允许凭据头

  •  0
  • RamY  · 技术社区  · 8 年前

    我在ibmcloudobjectstore中有一个映像,需要授权才能获取。但这在浏览器和iOS(我正在开发一个混合应用程序)中不起作用,但在Android中运行良好。调试我看到飞行前请求失败,出现403个授权错误。在android中没有预飞请求,因此图像加载很好,但浏览器和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>
    

    使用格式错误的xml时失败。但如果我把所有的东西都去掉了,就没问题了。

    所以第一个问题是AllowCredentials的XML语法是什么。

    1 回复  |  直到 8 年前
        1
  •  0
  •   RamY    8 年前

    不需要访问控制允许凭据头。选项请求的403错误在我将CORS设置为以下值时消失:

    <CORSConfiguration>
        <CORSRule>
            <AllowedMethod>PUT</AllowedMethod>
            <AllowedMethod>POST</AllowedMethod>
            <AllowedMethod>DELETE</AllowedMethod>
            <AllowedMethod>GET</AllowedMethod>
            <AllowedOrigin>*</AllowedOrigin>
            <AllowedHeader>*</AllowedHeader>
        </CORSRule>
    </CORSConfiguration>