Server cannot modify cookies after HTTP headers have been sent
mvc 在ActionResult 加载时候回去读取客户端cookie,如果不存在在添加个cookie
但是却出现:Server cannot modify cookies after HTTP headers have been sent.
System.Web.HttpCookie cookie = new System.Web.HttpCookie(cookieName);
cookie.Value = s;
cookie.Expires = DateTime.Now.AddHours(24 * 365);
cookie.Domain = ".xx.com";
cookie.Path = "/";
contorler.Response.Cookies.Add(cookie);
------解决方案--------------------没看到你写的判断cookie是否存在的代码啊。这句是说你重复建立了吧。
------解决方案--------------------只要不同时跳转和修改cookie、输出缓存,就能解决问题;
当然,也可以在webconfig配置中修改cacheRolesInCookie属性值设置成false就行了
------解决方案--------------------道理很简单,如果你懂http协议的话。
http协议的响应类似这样:
http 1.1 200 ok //开始
server: ... //响应头
date: ...
set-cookie: xxx
<html> //这里是正文
<head>
...
...
你可以看到,一旦开始往客户端输出正文数据,你就不能再setcookie了。