1

我正在尝试Cloudfoundry UAA使用Ajax.

我的POST请求<uaa-url>/oauth/token触发了一个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

响应上述请求,UAA403与 HTML 正文一起发送消息

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

我省略了不相关的 HTML。

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

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

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

我曾经用Password grant typeUAA 实现自定义登录表单。我正在使用 Ajax,因此应用程序服务器不知道密码。

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

4

1 回答 1

0

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

cors:
  default:
    allowed:
      headers:
        - accept
        - authorization
        - content-type
        - origin
        - authorization
        - accept-language
        - content-language
于 2016-06-01T13:34:44.330 回答