ajax - 您能否在 Ajax (XHR) 调用的服务器端处理期间可靠地设置或删除 cookie?

标签 ajax xmlhttprequest cookies server-side dwr

我自己对此进行了一些测试(准确地说是在服务器端处理 DWR 框架 Ajax 请求处理程序期间),似乎您可以成功操作 cookie,但这与我在 Ajax 最佳实践和浏览器如何解释来自 XmlHttpRequest 的响应。注意我已经测试过:

  • IE 6 和 7
  • Firefox 2 和 3
  • Safari

  • 并且在所有情况下,浏览器正确解释了 Ajax 请求处理期间 HttpServletResponse 对象上的标准 cookie 操作,但我想知道将 cookie 操作推送到客户端是否是最佳实践,或者这个(更干净的)服务器可以信任侧面 cookie 处理。

    我欢迎特定于 DWR 框架和一般 Ajax 的答案。

    最佳答案

    XMLHttpRequest 始终使用 Web 浏览器的连接框架。这是 AJAX 程序正常工作的必要条件,因为如果 XHR 对象无法访问浏览器的 cookie 池,用户将被注销。

    理论上,Web 浏览器可以在不使用浏览器的连接框架的情况下简单地共享 session cookie,但这在实践中从未发生过(据我所知)。甚至 Flash 插件也使用 Web 浏览器的连接。

    因此,最终结果是通过 AJAX 操作 cookie 是安全的。刚刚牢记 AJAX 调用可能永远不会发生。它们不是保证事件,所以不要指望它们。

    关于ajax - 您能否在 Ajax (XHR) 调用的服务器端处理期间可靠地设置或删除 cookie?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/89579/

    相关文章:

    javascript - 我如何使用 Polymer is-ajax 提交获取responseText?

    javascript - 使用搜索建议

    php - 获取cookie过期时间

    javascript - 响应 header 中不包含“Set-Cookie”

    php - 在 CodeIgniter 中通过 ajax 插入时出现数据库错误

    html - 返回 <td> 格式为 <a> 链接 [ajax]

    javascript - 可用于 Firefox 附加组件的 XMLHttpRequest 的更强大替代方案?

    javascript - 从文件 ://to http://执行 XMLHttpRequest 时出现问题

    ajax - XMLHttpRequestProgressEvent.total totalSize 给出了错误的值

    asp.net-mvc - 如何在 View MVC3中读取cookie?