Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaScript中设置cookie值并在Rails控制器中获取它_Javascript_Jquery_Ruby On Rails_Ruby_Session - Fatal编程技术网

如何在JavaScript中设置cookie值并在Rails控制器中获取它

如何在JavaScript中设置cookie值并在Rails控制器中获取它,javascript,jquery,ruby-on-rails,ruby,session,Javascript,Jquery,Ruby On Rails,Ruby,Session,使用RubyonRails 5.0.3 我想使用JavaScript(当点击按钮时)在cookie中设置一些值,并在Rails中获得它 我知道如何访问Rails中的会话,即session[:some_key]或cookies 但我不知道如何使用JavaScript。(它必须能够从Rails会话或cookies访问) 我如何在JS中完成它 或者通过任何其他方式在JS中保存一些值,然后在Rails中获取这些值?不幸的是,您无法从客户端修改Rails会话,即使它存储在cookie中。因为rails会话

使用RubyonRails 5.0.3

我想使用JavaScript(当点击按钮时)在cookie中设置一些值,并在Rails中获得它

我知道如何访问Rails中的会话,即
session[:some_key]
cookies

但我不知道如何使用JavaScript。(它必须能够从Rails
会话
cookies
访问)

我如何在JS中完成它


或者通过任何其他方式在JS中保存一些值,然后在Rails中获取这些值

不幸的是,您无法从客户端修改Rails会话,即使它存储在cookie中。因为rails会话是加密的。作为解决方案,您可以使用常规cookie,而不是Rails会话

检查
了解更多信息

rails应用程序的cookie只是一些散列字符串,用于标识包含数据的服务器cookie


正如他们所说的,使用Ajax编写一些控制器方法,将必要的信息更新到rails cookie中

JS在客户端上运行,因此不能直接影响存储在服务器上的会话。您可以从JS向服务器发送一个AJAX请求,该请求获取/设置您所需的会话值。您需要从客户端发出服务器请求:查看。好的,然后我可以使用cookie?无论如何,我想在JS中保存一些值,然后在Rails中获取它…如果可以的话,我不想在不发送请求的情况下这样做。为什么不使用浏览器cookie,您可以从Rails和客户端访问或设置Rails中的
cookies[:key]
document.cookie
来获取客户端的cookie列表。谢谢!所以Rails Cookie没有被加密?是的,Cookie没有被加密,并从客户端打开以供读取和修改。会话也是cookie,在大多数情况下,让我们忘记AR会话存储,但是Rails会话中存储的所有数据都是加密的,因此没有
secret\u key\u base
您无法修改或从客户端读取这些数据。您不能在单击按钮的同时设置cookie并通过ajax发送值吗?