2013-12-20 5 views
2

Я настроить приложение Rails 4 с Ember JS с использованием драгоценных камней, доступных на сайтеEmber JS и Rails 4 CSRF

Gemfile

gem 'ember-rails' 
gem 'ember-source', '1.2.0' 

entries_controller.js.coffee

Tut1.EntriesController = Ember.ArrayController.extend 

    addEntry: -> 
     entry = @store.createRecord(Tut1.Entry, 
     name: @get('newEntryName') 
     winner: false 
    ) 
    entry.save() 

Я получаю эту ошибку на консоли.

POST http://localhost:3000/entries 422 (OK) 

Это правильно разместить, но рельсы перенастройка на «ActionController :: InvalidAuthenticityToken», который сбивает с толком меня, как хозяин, происхождение и реферер являются одинаковыми.

Host:localhost:3000 
Origin:http://localhost:3000 
Referer:http://localhost:3000/ 

До сих пор перекрестный домен? Как аутентифицировать этот запрос.

ответ

2

Это не запрос крест домена, однако, код в контроллере приложения:

protect_from_forgery with: :exception 

пытается защитить от атаки CSRF. Он ожидает действительный токен CSRF при отправке формы. Есть some more details here.

Простой способ обойти эту проблему будет заключаться в использовании rails_csrf. Он по существу запрашивает токен с вашего сервера, а затем устанавливает соответствующие заголовки, чтобы затем запросы выполнялись с помощью правильного токена CSRF.

Смежные вопросы