Safari中不允许使用Cloudfoundry UAA预检Origin标头

时间:2016-05-31 23:48:44

标签: ajax safari cloudfoundry preflight cloudfoundry-uaa

我尝试使用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

为响应上述请求,UAA将403与HTML正文一起发送消息

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

我省略了不相关的HTML。

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

Safari正在每个预检请求中发送此Origin标头。我迷失了,现在考虑向UAA提出服务器端请求。

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

我已使用Password grant type与UAA实施自定义登录表单。我正在使用Ajax,以便应用程序服务器不知道密码。

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

1 个答案:

答案 0 :(得分:0)

您是否尝试使用

配置您希望UAA接受的标头
cors:
  default:
    allowed:
      headers:
        - accept
        - authorization
        - content-type
        - origin
        - authorization
        - accept-language
        - content-language