我自己做了一些测试(确切地说,在DWR框架Ajax请求处理程序的服务器端处理期间),你似乎可以成功地操作cookie,但这与我在Ajax最佳实践和浏览器如何解释来自XmlHttpRequest的响应.注意我测试过:
IE 6和7
Firefox 2和3
苹果浏览器
并且在所有情况下,浏览器正确解释了Ajax请求处理期间HttpServletResponse对象上的标准cookie操作,但我想知道是否最好将cookie操作推送到客户端,或者这个(更干净)服务器可以信任边cookie处理.
我会欢迎特定于DWR框架和Ajax的答案.
XMLHttpRequest始终使用Web浏览器的连接框架.这是AJAX程序正常工作的要求,因为如果XHR对象无法访问浏览器的cookie池,则用户将被注销.
理论上,Web浏览器可以在不使用浏览器连接框架的情况下简单地共享会话cookie,但这实际上从未(据我所知)发生过.甚至Flash插件也使用Web浏览器的连接.
因此最终结果是通过AJAX操作cookie是安全的.只是要记住的是,AJAX调用可能永远不会发生.它们不是保证事件,所以不要指望它们.