我正在尝试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 headers
Safari 将如何向UAA
服务发出 Ajax 请求?
由于 safariOrigin
在每个预检请求中发送此标头。我在这里迷路了,现在正在考虑向 UAA 发出服务器端请求。
此时似乎不可能使用 Safari 浏览器向 Cloudfoundry UAA 实例发出 Ajax 请求。
我曾经用Password grant type
UAA 实现自定义登录表单。我正在使用 Ajax,因此应用程序服务器不知道密码。
也欢迎任何关于在不与服务器共享密码且不使用 Ajax 的情况下实现自定义登录表单的建议。