在ajax电话上失去会话

时间:2014-03-13 18:59:25

标签: ajax session ruby-on-rails-4 csrf

所以,在我们的应用程序中,我们正在对我们的api(同一个域,同一服务器)进行少量ajax调用。

通常那些ajax调用是“自动提示”,上传图片,......

它在rails 3上运行良好,它在本地env(localhost)中运行良好的rails 4,但在我们的开发服务器上它不再工作。

我怀疑csrf出现了问题,但我在页面中有csrf令牌,而ajax调用也在发送令牌。

然而,这就是我在日志中的内容

Started GET "/api/v1/services/get_suggestions/289" for 50.16.6.85 at 2014-03-13 18:40:24 +0000
Processing by Api::V1::ServiceController#get_suggestions as JSON
  Parameters: {"service_id"=>"289"}
Completed 401 Unauthorized in 2ms
Started GET "/user/sign_in.json" for 50.16.6.85 at 2014-03-13 18:40:24 +0000
Processing by SessionsController#new as JSON
Redirected to http://dev.myapp.com/
Filter chain halted as :require_no_authentication rendered or redirected
Completed 302 Found in 466ms (ActiveRecord: 1.3ms)

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您的会话是否可能与其他子域相关联? CSRF令牌与会话相关联,会话可以与特定子域相关联。

例如,如果您的会话位于域myapp.com域

但是向dev.myapp.com发出请求,CSRF令牌无效,因为它仅对域http://maypp.com上的会话有效。