gpt4 book ai didi

jquery - Ajax请求,忽略cookie?

转载 作者:行者123 更新时间:2023-12-01 06:10:35 30 4
gpt4 key购买 nike

我正在通过ajax(angularJs,但也尝试了jQuery)调用服务器。响应包含一个 cookie,但是由于某种原因该 cookie 没有保留在客户端上。我可以在响应中看到 Set-cookie header ,但 cookie 不会出现在 Chrome 的开发工具中,也不会在服务器上的后续请求中可用。

这是服务器代码(这是WebAPI):

HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
response.Headers.AddCookies(new[] { new CookieHeaderValue("auth", "my cookie content") { Expires = DateTime.Now.AddDays(7), Domain = "/" } });
IContentNegotiator negotiator = Configuration.Services.GetContentNegotiator();
ContentNegotiationResult result = negotiator.Negotiate(typeof(LoggedInModel), Request, Configuration.Formatters);
response.Content = new ObjectContent<LoggedInModel>(new LoggedInModel { Email = model.Email }, result.Formatter);
return response;

确实没有什么,而且我可以看到 cookies header 。这是响应中的 cookie header :

Set-Cookie:auth=some-value-here; expires=Mon, 25 Mar 2013 20:39:43 GMT; domain=/

我尝试从 IIS 运行它,所以它不是 localhost-something - 没有帮助。

它不是 CORS,同一服务器,ajax 调用是对“/api/blah”类型的地址进行的。

我缺少什么想法吗?

最佳答案

需要在 cookie 上设置路径...呃!基本上,在创建 cookie 时,请确保设置路径属性:

var cookie = new CookieHeaderValue("auth", "blah") { Expires = DateTime.Now.AddDays(7), Path = "/", HttpOnly = true };

再说一遍,这是 Web api,MVC 默认设置它,我相信 - 至少我在创建 cookie 时不必指定路径。

关于jquery - Ajax请求,忽略cookie?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15488400/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com