gpt4 book ai didi

ruby-on-rails - 使用 remote=true 执行 ajax 时,Rails 不保留 session 数据

转载 作者:行者123 更新时间:2023-12-04 15:29:57 25 4
gpt4 key购买 nike

我正在使用 rails 应用程序并尝试使用 rails remote: true 执行 ajax 请求。该请求应该触发我的 Controller 操作之一。

<%= form_tag my_action_path(@version), {remote: true} do %>

在应用程序 Controller 中有一个 before_filter在执行操作之前执行的回调。它像这样检查 session 用户 ID:

if session[:user_id]

此检查无法强制重定向。当我检查 session[:user_id]它是零,我猜这意味着 session cookie 没有被传递。我有一堆 js 对 Controller 执行 ajax,有趣的是它们都可以工作,通过了检查。那么两个问题:

我需要一些额外的代码来使 remote:true 工作吗?有没有办法设置 session cookie 或 smth?

这是验证未经授权的 ajax 请求的正确方法还是有更好的方法。

我正在使用 Rails 4

谢谢

最佳答案

我正在使用设计,所以我不确定这是否直接适用,但是,您还必须在表单标记中传递 authenticity_token

<%= form_tag my_action_path(@version), {remote: true}, authenticity_token: true do %>

它可能是不同的东西,但相似。我认为这对你有用。

要查看的另一件事是查看有效的表单并查看在控制台中将哪些数据发布到您的服务器,因为 Rails 会回显传递到服务器的数据,您可以使用它来帮助我们帮助您调试。它应该有 session_idauthenticity_token 或所有有效 session 请求中的类似内容(您在登录时执行的任何操作)。

关于ruby-on-rails - 使用 remote=true 执行 ajax 时,Rails 不保留 session 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46561835/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com