我尝试使用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的情况下实现自定义登录表单的建议。
答案 0 :(得分:0)
您是否尝试使用
配置您希望UAA接受的标头cors:
default:
allowed:
headers:
- accept
- authorization
- content-type
- origin
- authorization
- accept-language
- content-language