C# 从HttpResponse检索cookie
我有一个通过Ajax调用的控制器操作,其中我设置了一个cookie,如下所示:C# 从HttpResponse检索cookie,c#,asp.net,asp.net-mvc,cookies,C#,Asp.net,Asp.net Mvc,Cookies,我有一个通过Ajax调用的控制器操作,其中我设置了一个cookie,如下所示: Response.Cookies["Notifications"].Value = "false"; Response.Cookies["Notifications"].Expires = DateTime.Now.AddYears(1); if(Request.Cookies["Notifications"] != null && Request.Cookies["Notificatio
Response.Cookies["Notifications"].Value = "false";
Response.Cookies["Notifications"].Expires = DateTime.Now.AddYears(1);
if(Request.Cookies["Notifications"] != null &&
Request.Cookies["Notifications"].Value =="false")
//Do something here
在另一个控制器操作中,我检查此cookie,如下所示:
Response.Cookies["Notifications"].Value = "false";
Response.Cookies["Notifications"].Expires = DateTime.Now.AddYears(1);
if(Request.Cookies["Notifications"] != null &&
Request.Cookies["Notifications"].Value =="false")
//Do something here
问题是Request.Cookies[“Notifications”]始终为空。我已经验证了cookie是通过FireBug设置的。我正在通过visual studio的web内置web服务器进行测试。在FireBug中,您是否看到请求中返回的cookie?您还可以查看原始请求,看看它是否真的存在只是一个想法/建议。。。您可以启动Fiddler来嗅探实际的http流量,并查看Cookie是如何以及是否在http头中传输的。问题在于,我还设置了以下内容:
Response.Cookies["Notifications"].Secure = true;
当然,cookie没有被发送,因为我没有使用Https。您的服务器总是在同一个端口上启动吗?第二页的域是否与cookie的域匹配?域显示为“localhost”,是的,它在同一个域上,但不,服务器不总是在同一个端口上启动。但是,每个请求发出时都在同一端口上。这是一个很好的观点。我检查了一下,没有看到cookies与请求一起发送回来。这是什么原因造成的?