所以,在我们的应用程序中,我们正在对我们的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)
有什么想法吗?
答案 0 :(得分:0)
您的会话是否可能与其他子域相关联? CSRF令牌与会话相关联,会话可以与特定子域相关联。
例如,如果您的会话位于域myapp.com域
但是向dev.myapp.com发出请求,CSRF令牌无效,因为它仅对域http://maypp.com上的会话有效。