我正在使用C#创建一个Web应用程序。
当我的页面加载时,我会启动一个异步线程来处理一些数据。其中一部分处理是更新cookie。然而,当我通过
System.Web.HttpContext.Current.Response.Cookies.Add(cookie)
将cookie保存到响应中时,会出现以下异常:
HttpException: 服务器在HTTP头已发送后无法修改cookie。
有没有什么方法可以解决或修复这个问题?
我正在使用C#创建一个Web应用程序。
当我的页面加载时,我会启动一个异步线程来处理一些数据。其中一部分处理是更新cookie。然而,当我通过
System.Web.HttpContext.Current.Response.Cookies.Add(cookie)
将cookie保存到响应中时,会出现以下异常:
HttpException: 服务器在HTTP头已发送后无法修改cookie。
有没有什么方法可以解决或修复这个问题?
是的,Cookies 是 http 响应的一部分,在异步操作中,一旦响应生成并发送到浏览器后,您就无法更改任何内容。
为了解决这个问题,我建议在浏览器上构建一个 ajax 循环来获取异步操作结果。当操作完成时,您可以通过 ajax 响应返回一个 cookie。
如果在preinit或init中怎么办?不确定这是否有帮助。 http://msdn.microsoft.com/en-us/library/ms178472.aspx#lifecycle_events