在ajax调用中丢失会话

在ajax调用中丢失会话,ajax,session,ruby-on-rails-4,csrf,Ajax,Session,Ruby On Rails 4,Csrf,因此,在我们的应用程序中,我们很少对api(同一个域,同一个服务器)进行ajax调用 通常,这些ajax调用是“自动建议”、上传图片 它在Rails3上运行良好,在本地环境(localhost)中运行良好,但在我们的开发服务器上不再运行 我怀疑csrf出了什么问题,但是我在页面的后面有csrf令牌,ajax调用也在发送令牌 然而,这里是我在日志中的内容 Started GET "/api/v1/services/get_suggestions/289" for 50.16.6.85 at 201

因此,在我们的应用程序中,我们很少对api(同一个域,同一个服务器)进行ajax调用

通常,这些ajax调用是“自动建议”、上传图片

它在Rails3上运行良好,在本地环境(localhost)中运行良好,但在我们的开发服务器上不再运行

我怀疑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)

有什么想法吗?

您的会话是否可能与另一个子域关联?CSRF令牌与会话相关联,会话可以与特定子域相关联

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

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