我有一個帶有Ember.js前端的Rails 4.0應用程序。我將Ember-Auth與Devise結合使用來處理認證。大多數情況下,一切正常。但是,如果我使用Jquery文件上傳,則後續對服務器的所有查詢都會導致InvalidAuthenticityToken錯誤。文件上傳本身完美,但如果我以後訪問組織索引頁,我會得到錯誤。如果我重新加載頁面,那麼錯誤就會停止,並且再次正常工作,直到我執行另一次上傳。使用jquery文件上傳後InvalidAuthenticityToken
上傳者看起來是這樣的:
didInsertElement: ->
$('#image_upload').fileupload
url: "/images"
formData: [{ name: 'auth_token', value: Whistlr.Auth.get('authToken') }]
success: (response) =>
@get('parentView').get('controller').set('image_token', response.token)
即使我刪除一切,但URL,我得到的InvalidAuthenticityToken之後。任何想法發生了什麼?
也許問題是與csrf令牌。嘗試在formData中使用這個:[ ] –
不幸的是,這並不是做訣竅。我也嘗試通過遵循[這些說明]將authenticity_token附加到所有ajax交易(http://blog.waymondo.com/2012-12-18-ember-dot-js-and-rails-authentication-gotchas/) ,但問題仍然存在。任何意見,將不勝感激!我在這個問題上開了一筆獎金。 – nullnullnull
閱讀[Rails文檔](http://guides.rubyonrails.org/security.html#csrf-countermeasures),它看起來像authenticity_token特定於每個會話。也許錯誤發生是因爲會話在JQuery文件上傳過程中以某種方式被重置? – nullnullnull