我在多个子域(example.com,blog.example.com和app.example.com)上有一个通用的身份验证表单.登录表单必须将此数据提交给example.com而不管它在何处显示,所以我想到了使用CORS,但是这个:
header("Access-Control-Allow-Origin: http://example.com http://blog.example.com http://app.example.com")
Run Code Online (Sandbox Code Playgroud)
所以我想做下一件事,并在服务器端手动检查Origin标头,并允许Access-Control-Allow-Origin: *可以进行请求,但不幸的是,这在MDN中出现了
重要说明:在响应凭证请求时,服务器必须指定域,并且不能使用通配符.
有没有办法让我的请求跨多个域工作,仍然使用CORS发送凭据?
mon*_*sur 41
两个想法:
1)您是否还包括"Access-Control-Allow-Credentials:true"标题?这是传递cookie凭据所必需的(相应的XHR客户端必须设置.withCredentials = true)
2)您是否尝试过链接中的建议并仅包含当前请求的来源.例如,如果请求带有标题"Origin:http://blog.example.com ",您将回复"Access-Control-Allow-Origin:http://blog.example.com ",并且不是起源清单.这需要在服务器端实现上多做一些工作.
3)另一个想法,你提到你有一个必须由各个域共享的登录表单.好吧,如果它是标准的HTML表单,您可以跨域进行常规表单发布.您不需要使用CORS.只需将表单的"action"属性设置为您要发布到的URL即可.例如:
<form name="login" action="http://login.example.com/doLogin">
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
69749 次 |
| 最近记录: |