我正在使用ServiceStack编写基于REST的服务,但作为身份验证的一部分,我需要授权跨域,但是不能跨域读取cookie,所以即使我的JSON POST到了身份验证服务成功并返回SetCookie结果,它永远不会看到该cookie,因为它无法看到它。
问题是,有没有其他方法,也许我可以通过请求标题提供相同的值或什么?
答案 0 :(得分:2)
如果客户端和接收方都允许,您可以在跨域请求中传递Cookie。看看这个link here
答案 1 :(得分:1)
您可以在您的Ajax请求中使用HTTP BasicAuth HTTP标头,服务器需要BasicAuthProvider() enabled,例如:
Plugins.Add(new AuthFeature(
() => new CustomUserSession(), //Use your own typed Custom UserSession type
new IAuthProvider[] {
new BasicAuthProvider(), //Sign-in with Basic Auth
//... other providers
}));
虽然注意BasicAuth只是您的UserName / Password的Base64编码版本,所以理想情况下这应该通过SSL发生。
请参阅此答案,了解如何add BasicAuth headers using jQuery。