Ajax Safari中不允许使用Cloudfoundry UAA飞行前原始标头
我正在尝试使用Ajax Safari中不允许使用Cloudfoundry UAA飞行前原始标头,ajax,safari,cloud-foundry,preflight,cloudfoundry-uaa,Ajax,Safari,Cloud Foundry,Preflight,Cloudfoundry Uaa,我正在尝试使用Ajax访问Cloudfoundry UAA服务 我对/oauth/token的POST请求触发飞行前选项请求 在Chrome和firefox中,哪个控件发送以下控件头值 Access-Control-Request-Headers:accept, authorization, content-type 它可以正常工作,因为UAA允许在CORS响应中使用这些头 问题出现在Safari中,它在控制标题中包含一个新标题Origin,如下所示(用于飞行前选项请求) 为了响应上述请求,U
Ajax
访问Cloudfoundry UAA
服务
我对/oauth/token
的POST
请求触发飞行前选项
请求
在Chrome和firefox中,哪个控件发送以下控件头值
Access-Control-Request-Headers:accept, authorization, content-type
它可以正常工作,因为UAA
允许在CORS
响应中使用这些头
问题出现在Safari
中,它在控制标题中包含一个新标题Origin
,如下所示(用于飞行前选项
请求)
为了响应上述请求,UAA发送403
以及带有消息的HTML正文
<h1>HTTP Status 403 - Illegal header requested</h1>
HTTP状态403-请求的头非法
我省略了不相关的HTML
我的问题是,如果UAA不支持允许的CORS标头中的Origin
标头,Safari将如何向UAA
服务发出Ajax请求
因为safari在每次飞行前请求中都会发送此Origin
头。我在这里迷路了,现在正在考虑向UAA发出服务器端请求
此时,似乎不可能使用Safari浏览器向Cloudfoundry UAA实例发出Ajax请求。
我已经使用密码授权类型实现了UAA的自定义登录表单。为此,我使用了Ajax,这样应用服务器就不知道密码了
如果您建议在不与服务器共享密码和不使用Ajax的情况下实现自定义登录表单,我们也欢迎您的建议。您是否尝试过使用配置您希望UAA接受的标题
cors:
default:
allowed:
headers:
- accept
- authorization
- content-type
- origin
- authorization
- accept-language
- content-language
您是否尝试过使用配置希望UAA接受的标头
cors:
default:
allowed:
headers:
- accept
- authorization
- content-type
- origin
- authorization
- accept-language
- content-language
你能在这里发布请求和回复吗。以及您可能添加的任何UAA配置。ThanksI将尝试添加一些配置详细信息,但是对于特定配置,Origin
标题不会出现问题。您可以尝试使用Ajax从Safari访问任何UAA服务,甚至在主页上,您将获得飞行前的403
。您可以在此处发布请求和响应吗。以及您可能添加的任何UAA配置。ThanksI将尝试添加一些配置详细信息,但是对于特定配置,Origin
标题不会出现问题。你可以尝试使用Ajax从Safari访问任何UAA服务,甚至在主页上,飞行前你会得到403
。我没有,我甚至不知道这是可能的。我试试这个,看起来很有希望。这个配置应该在哪里完成?我没有,我甚至不知道这是可能的。我试试这个,看起来很有希望。应该在哪里进行此配置?