And*_*Dog 14 cookies ajax http cors
我有一个使用jQuery.ajax的web应用程序来执行对另一个主机的请求(现在实际上是相同的,因为我使用的是"localhost"的不同端口).然后服务器返回一个cookie.
如Chrome的开发工具中所示,HTTP响应中的cookie值为
Set-Cookie: MyUserSession=JxQoyzYm1VfESmuh-v22wyiyLREyOkuQWauziTrimjKo=;expires=Sun, 10 Feb 2013 22:08:47 GMT;path=/api/rest/
Run Code Online (Sandbox Code Playgroud)
所以将来有4个小时的到期时间.
但是,cookie不会随后续请求一起存储和发送(在Chrome和Firefox中都经过测试).我首先认为它必须是"2013年2月10日"而不是"2013年2月10日",但这并没有什么不同.Chrome还会在响应的Cookie标签上将"过期"显示为"无效日期",但这可能也是Dev Tools错误.
有任何想法吗?
And*_*Dog 24
我想我找到了解决方案.由于在开发过程中,我的服务器位于"localhost:30002",而我的网络应用程序位于"localhost:8003",因此它们被视为与CORS 不同的主机.因此,我对服务器的所有请求都包含在CORS安全规则中,尤其是具有凭据的请求."凭据"包括该链接上注明的cookie,因此我不接受返回的cookie,因为我没有通过
xhrFields: {
withCredentials: true
}
Run Code Online (Sandbox Code Playgroud)
到jQuery的$.ajax
功能.我还必须将该选项传递给后续的CORS请求才能发送cookie.
我Access-Control-Allow-Credentials: true
在服务器端添加了标头,并将Access-Control-Allow-Origin
标头从通配符更改为http://localhost:8003
(端口号很重要!).该解决方案现在适用于我并且cookie被存储.
归档时间: |
|
查看次数: |
9341 次 |
最近记录: |