首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

Server cannot modify cookies after HTTP headers have been sent,该如何解决

2013-03-01 
Server cannot modify cookies after HTTP headers have been sentmvc 在ActionResult 加载时候回去读取客

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了。

热点排行