У меня есть приложение Rails 4.0 с интерфейсом Ember.js. Я использую Ember-Auth совместно с Devise для проверки подлинности. По большей части все работает. Однако, если я использую загрузку файлов Jquery, то все последующие запросы к серверу приводят к ошибке InvalidAuthenticityToken. Сама загрузка файла работает отлично, но если я, например, позже посещаю страницу индекса организаций, я получу ошибку. Если я перезагружу страницу, то ошибки прекратятся, и все будет нормально работать до тех пор, пока я не выполню другую загрузку.InvalidAuthenticityToken после загрузки файла JQuery
, добавивший выглядит следующим образом:
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: [ {name: 'authenticity_token', value: $ ('meta [name = "csrf-token"]'). Attr ('content')} ] –
К сожалению, этого не делается Хитрость. Я также попытался подключить 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