【发布时间】:2011-11-15 16:05:50
【问题描述】:
使用: 导轨 3.0.7 设计 1.4.5 jquery-rails 1.0.14
当通过 ajax 发布数据时,Devise 没有设置 current_donor。
我的请求标头如下所示:
Host localhost:3000
User-Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:6.0) Gecko/20100101 Firefox/6.0
Accept */*
Accept-Language en-us,en;q=0.5
Accept-Encoding gzip, deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection keep-alive
Content-Type application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With XMLHttpRequest
x-csrf-token UFhqJrlOA1c1sAPeUTtV/ABcq5IeqkfA842ORcIWwks=
在关联的控制器操作中,查看会话值,我发现以下内容:
{"_csrf_token"=>"UFhqJrlOA1c1sAPeUTtV/ABcq5IeqkfA842ORcIWwks=", "warden.user.donor.key"=>["Donor", [485], "$2a$10$OtkItrzVhN4Ussnqy5k1Au"], "session_id"=>"e6693e22275385a58e0915538791ea49"}
这将向我表明 csrf_token 与预期值匹配。然而, current_donor 仍然为零。
我已经阅读了几篇关于此的帖子,实际上,一开始,我的布局中没有 csrf_meta_tag 方法,也没有设置 csrf 令牌。
但是,情况不再如此,正在设置 csrf 令牌,但我仍然没有得到 current_donor 值。
当我发出 ajax 获取请求时,current_donor 被正确设置。
您对我应该在哪里查看的任何建议将不胜感激。
最好, 汤姆
【问题讨论】:
-
我遇到了同样的问题。你最后解决了吗?
-
同样的问题,Rails 4.1.6 和 Devise 3.4.1。有什么解决办法吗?
标签: jquery ruby-on-rails ajax jquery-ui devise