Javascript 如何在Web Api中设置之后在angularjs中读取cookie

Javascript 如何在Web Api中设置之后在angularjs中读取cookie,javascript,angularjs,asp.net-web-api,Javascript,Angularjs,Asp.net Web Api,我正在使用FormsAuthenticationTicket在web api中生成令牌, 就像这样: var user_json_str = new JavaScriptSerializer().Serialize(user); FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, user.UserId, DateTime.Now, DateTime.Now.AddMinutes(30),

我正在使用FormsAuthenticationTicket在web api中生成令牌, 就像这样:

var user_json_str = new JavaScriptSerializer().Serialize(user);
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,
    user.UserId,
    DateTime.Now,
    DateTime.Now.AddMinutes(30), false,
    user_json_str, FormsAuthentication.FormsCookiePath);

string encTicket = FormsAuthentication.Encrypt(ticket);//ENCRYPT THE TICKET
HttpContext.Current.Response.Cookies.Add(new HttpCookie("encTicket", encTicket));
之后,我尝试在响应头中将其返回给用户,如下所示:

var user_json_str = new JavaScriptSerializer().Serialize(user);
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,
    user.UserId,
    DateTime.Now,
    DateTime.Now.AddMinutes(30), false,
    user_json_str, FormsAuthentication.FormsCookiePath);

string encTicket = FormsAuthentication.Encrypt(ticket);//ENCRYPT THE TICKET
HttpContext.Current.Response.Cookies.Add(new HttpCookie("encTicket", encTicket));
在那之后我在客户端找到了cookie

我在某个地方读到,不建议像那样使用web api,因此我尝试了以下方法:

string encTicket = FormsAuthentication.Encrypt(ticket);//ENCRYPT THE TICKET
HttpResponseMessage ans = new HttpResponseMessage();
ans = new HttpResponseMessage(HttpStatusCode.OK);
ans.Content = new StringContent("Logged");
ans.Headers.AddCookies(new[] { new CookieHeaderValue("encTicket", encTicket) });
return ans;
这次cookie没有出现在客户端(我试图在chrome控制台中使用document.cookie读取它)


从web api在响应头中发送cookie的正确方法是什么?

您是否尝试了以下方法

ans.Headers.AddCookies(new[] { new CookieHeaderValue("encTicket", encTicket)
{
  Expires = new DateTimeOffset( DateTime.Now.AddYears(1)),Path = "/"
} });

看,但如果我在控制台中打印:document.cookie,它已经显示了页面上存在的所有cookie。我不认为$cookie会显示其他隐藏的cookie。我尝试了你的建议,正如我所想,cookie是未定义的。我的问题不是读取cookie,而是确保它到达客户端。检查响应标题,它是否显示在那里?当我使用chrome的“网络”选项卡读取响应时,它会显示。但在javascript中它是缺席的