http - 如何在不重定向的情况下将 cookie 添加到 Seaside 响应中?

标签 http cookies seaside redirectwithcookies

我正在 Seaside 中制作一个小型 Web 应用程序。我有一个登录组件,在用户登录后,我想在下一个组件呈现时发送一个 cookie。有没有办法获取处理响应的对象,以便我可以向它将输出的 header 添加一些内容?

我试图避免使用 WASession>>redirectWithCookies,因为仅仅因为我想设置一个 cookie 而重定向似乎很笨拙。

是否已经存在另一种方法来添加将在下一次响应时发出的 cookie?

最佳答案

目前没有内置方法可以在请求处理的操作/回调阶段添加 cookie。这很可能是一个缺陷,并在本期中指出:http://code.google.com/p/seaside/issues/detail?id=48

目前计划为 Seaside 2.9 修复此问题,但我不知道它是否会向后移植到 2.8。

请记住,在 Action 和渲染阶段之间已经存在(默认情况下)重定向,以防止刷新重新触发回调,因此在宏伟的计划中,在这种情况下不会再进行重定向不好了。

如果您还想深入了解,请查看 WARenderContinuation>>handleRequest:。这就是触发回调处理并开始重定向或呈现阶段的地方。

编辑添加:

该问题现已修复,(在最新的开发代码中)您现在可以随时将 cookie 添加到当前响应中。只需访问当前请求上下文中的响应对象并添加 cookie。例如,您可以执行以下操作:

self requestContext response addCookie: aCookie

这不太可能向后移植到 Seaside 2.8,因为它需要对响应处理方式进行相当大的转变。

关于http - 如何在不重定向的情况下将 cookie 添加到 Seaside 响应中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/88306/

相关文章:

smalltalk - 从另一个组件修改组件的状态

http - 为什么我尝试使用 "net/http: request canceled while waiting for connection"获取一些图像时得到 "net/http"

python - 在 telnet 中找不到 404,在浏览器中工作正常

http - URI 字符限制包括什么

c# - ASP.NET Core Identity 中的两个身份验证 cookie

user-interface - 删除 Firefox 上的特定 cookie

java - 用于管理 session 的 Tomcat 过滤器

java - 尝试使用Java Http URL连接来执行curl命令

smalltalk - 如何获得显示图像的表格

smalltalk - 海边: 'contents' 的接收者为零