【问题标题】:Cloudfoundry UAA preflight Origin header not allowed in SafariSafari 中不允许 Cloudfoundry UAA 预检 Origin 标头
【发布时间】:2016-09-30 03:42:44
【问题描述】:

我正在尝试使用Ajax 访问Cloudfoundry UAAservice。

我对@9​​87654324@ 的POST 请求会触发preflight Options 请求。

Chrome and firefox 发送以下控制标头值

Access-Control-Request-Headers:accept, authorization, content-type

它工作正常,因为UAA 允许在CORS 响应中使用这些标头。

问题带有Safari,它在控制标头中包含一个新标头Origin,如下所示(用于preflight Options请求)

Access-Control-Request-Headers:accept, authorization, content-type, origin

响应上述请求,UAA 发送403 以及带有消息的 HTML 正文

<h1>HTTP Status 403 - Illegal header requested</h1>

我省略了不相关的 HTML。

我的问题是,如果 UAA 不支持 allowed CORS headers 中的 Origin 标头,Safari 将如何向 UAA 服务发出 Ajax 请求?

由于 safari 在每个预检请求中发送此 Origin 标头。我在这里迷路了,现在正在考虑向 UAA 发出服务器端请求。

此时似乎无法使用 Safari 浏览器向 Cloudfoundry UAA 实例发出 Ajax 请求。

我已经使用Password grant type 来实现带有 UAA 的自定义登录表单。我正在使用 Ajax,因此应用程序服务器不知道密码。

也欢迎任何关于在不与服务器共享密码且不使用 Ajax 的情况下实现自定义登录表单的建议。

【问题讨论】:

  • 您能在此处同时发布请求和响应吗?以及您可能添加的任何 UAA 配置。谢谢
  • 我会尝试添加一些配置细节,但是对于特定配置,Origin 标头不会出现问题。您可以尝试使用 Ajax 从 Safari 访问任何 UAA 服务,甚至是主页,您将获得 403 进行预检。

标签: ajax safari cloud-foundry preflight cloudfoundry-uaa


【解决方案1】:

您是否尝试过配置您希望您的 UAA 接受的标头

cors:
  default:
    allowed:
      headers:
        - accept
        - authorization
        - content-type
        - origin
        - authorization
        - accept-language
        - content-language

【讨论】:

  • 我没有,我什至不知道这是可能的。我会试试这个,它看起来很有希望。这个配置应该在哪里完成?
猜你喜欢
  • 2020-10-15
  • 2016-04-24
  • 1970-01-01
  • 2017-02-08
  • 2019-06-19
  • 1970-01-01
  • 2019-12-12
  • 2018-03-02
  • 2017-02-06
相关资源
最近更新 更多