【发布时间】:2018-10-26 03:20:51
【问题描述】:
我有一个使用 Web API 的单页应用程序。当用户登录时,我希望服务器设置一个 cookie 以便进一步识别。
AJAX 请求显然是 HTTP,只有一个小的标识头。据我所知,浏览器的代理不应该区分XMLHttpRequest 和正常请求。特别是因为我使用的是相对较旧的 Firefox 版本。
应用网址:http://sub.domain.com/app
API 请求:http://sub.domain.com/service/method
域和子域完全相同。没有尝试更改其他域的 cookie。
如您所见,cookie 被浏览器的请求解析器识别。即使在搜索了 SO 和 Google 之后,我也没有找到一个合乎逻辑的解释来解释为什么这不是设置 cookie。
尝试了一堆不同的 Set-Cookie 参数组合。我认为最稳定的语法是key=value; expires=date; domain=.domain.com,这就是我在上面示例中使用的语法。
附: 我使用的是实际域和子域,而不是 localhost。 使用相对较旧且稳定的 Firefox 版本。
【问题讨论】:
-
你会分享你用来设置cookie的代码吗?
-
@junkangli 代码都是验证逻辑,我只是在响应中添加了 Set-Cookie HTTP 标头,就像
key=value; expires=date; domain=.domain.com... -
我可以检查一下您是如何验证未设置 cookie 的吗?
-
@junkangli 我用这个 Firefox Cookie Manager -> addons.mozilla.org/en-US/firefox/addon/a-cookie-manager
-
@fingeron,对我提供的答案有任何反馈吗?
标签: ajax http cookies setcookie