Ruby on rails Rails 3的会话问题

Ruby on rails Rails 3的会话问题,ruby-on-rails,ruby,ajax,session,authlogic,Ruby On Rails,Ruby,Ajax,Session,Authlogic,我在Rails 3.0.5中使用Authlogic 2.1.6进行授权,AJAX请求存在会话cookie问题 在一个POST或PUT AJAX调用之后,我得到一个401响应和一个新的会话密钥。之后,每个调用都将返回401响应。在POST或PUT调用之前,每个GET调用都会成功 这不会发生在测试模式中,只会发生在开发和生产模式中 有人知道如何避免这种情况吗 编辑:我认为防伪真伪密钥有问题,因为禁用防伪后一切正常 这是一个将生成401: Rails日志条目如下所示: 编辑2: 下一个奇怪的事情:我发

我在Rails 3.0.5中使用Authlogic 2.1.6进行授权,AJAX请求存在会话cookie问题

在一个POST或PUT AJAX调用之后,我得到一个401响应和一个新的会话密钥。之后,每个调用都将返回401响应。在POST或PUT调用之前,每个GET调用都会成功

这不会发生在测试模式中,只会发生在开发和生产模式中

有人知道如何避免这种情况吗

编辑:我认为防伪真伪密钥有问题,因为禁用防伪后一切正常

这是一个将生成401:

Rails日志条目如下所示:

编辑2:


下一个奇怪的事情:我发送了一个基本的AUTH头,而不是会话ID的cookie,我没有得到401,非常奇怪的“伪造保护真实性”的一个基本错误是忘记添加
csrf\u meta\u标记

在布局中,将其添加到标题标记中。没有它,任何Ajax请求都不能使用好的令牌


如果不使用Ajax,请使用simple_form helper在表单中生成令牌

使用“伪造保护真实性”的一个基本错误是忘记添加
csrf_meta_标记

在布局中,将其添加到标题标记中。没有它,任何Ajax请求都不能使用好的令牌


如果不使用Ajax,请使用simple_form helper在表单中生成令牌

您是否检查了在发布或发布后会话是否发生了更改?我们需要更多信息来帮助您喜欢日志。添加了日志条目和请求标题您是否检查了在发布或发布后会话是否发生了更改?我们需要更多的信息来帮助你喜欢日志。添加了日志条目和请求标题。我想我可以通过ajax发送json来避免这个问题吗?不,如果你做另一个请求,检查是一直执行,而不是获取如果你保护伪造被激活,对于“正常”的json API,这也是吗?听起来很糟糕,我想我可以通过ajax发送json来避免这个问题?不,如果你做了另一个请求,那么检查是do,而不是GET,如果你保护伪造,那么检查是激活的,对于“正常”的json API,这也是吗?听起来很糟糕
Accept:*/*
Cache-Control:max-age=0
Content-Type:application/json; charset=UTF-8
Origin:http://localhost:3000
Referer:http://localhost:3000/
User-Agent:Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; de-de) AppleWebKit/533.19.4    (KHTML, like Gecko) Version/5.0.3 Safari/533.19.4
X-Requested-With:XMLHttpRequest
Started POST "/users.json" for 127.0.0.1 at Tue Apr 12 10:47:33 +0200 2011
Processing by UsersController#create as JSON
Parameters: {"user"=>{"password_confirmation"=>"[FILTERED]", "group_id"=>2, "lastname"=>"test1", "prename"=>"test1", "password"=>"[FILTERED]", "login"=>"test1"}}
Rendered text template (0.0ms)
Completed 401 Unauthorized in 19ms (Views: 0.9ms | ActiveRecord: 3.0ms)