gpt4 book ai didi

ruby-on-rails - Ajax 调用丢失 session - Ruby on Rails/Radiant CMS 站点

转载 作者:行者123 更新时间:2023-12-04 06:34:09 25 4
gpt4 key购买 nike

我正在对 Radiant CMS/Ruby on Rails 应用程序进行一些相当广泛的更改 - 升级到 Radiant 1.* 以及大量 gem 更改 - 在此过程中,我们开始遇到维护用户的问题 session 。正常调用工作正常,但任何传入的 AJAX 调用都找不到用户的事件 session 并创建一个新 session 。

我们使用的是 cookie-store,所以那里可能出了点问题,但我不确定要看什么或在哪里看。检查请求 header ,看起来 session cookie 正在 AJAX 调用的 cookie header 中传递。对于两种类型的请求,cookie header 中传递的内容看起来是一样的。然而,当在 Controller 中获取 session 变量时,会为 ajax 调用而不是标准 http 调用创建一个新 session 。

知道可能发生了什么,或者我应该去哪里调试正在发生的事情?

最佳答案

问题很可能是安全 token 没有在 Ajax 调用中传递,这导致您的授权 gem 使用户注销。下面是一种在所有 Ajax 调用中透明传递安全 token 的方法:

app/views/layouts/application.html.erb

<!DOCTYPE html>
<html>
<head>
<%= csrf_meta_tags %>
(...)

然后将 jquery-ujs gem 添加到您的 Gemfile 中:

gem 文件

gem "jquery-ujs"

并将此行添加到您的应用程序 javascript 文件的 jquery 行下方:

app/assets/application.js

//= require jquery-ujs

这里是关于 jquery-ujs gem 的更多信息

关于ruby-on-rails - Ajax 调用丢失 session - Ruby on Rails/Radiant CMS 站点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12841495/

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