Rails + Emberjs: невозможно проверить подлинность токена CSRF
Я новичок в использовании рельсов в качестве API с интерфейсом Emberjs. Я получаю "Completed 422 Unprocessable Entity" и не могу проверить подлинность токена CSRF всякий раз, когда я пытаюсь выполнить запрос POST
Я видел пару постов и решений, говорящих о вставке этой функции
$(function() {
var token = $('meta[name="csrf-token"]').attr('content');
return $.ajaxPrefilter(function(options, originalOptions, xhr) {
return xhr.setRequestHeader('X-CSRF-Token', token);
});
});
Где подходящее место для реализации CSRF в проекте ember-cli?
ОБНОВЛЕНИЕ: 1.10.2015
мой app/adapters/application.js теперь выглядит примерно так:
import DS from 'ember-data';
export default DS.ActiveModelAdapter.extend({
headers: Ember.computed(function(){
var token = Ember.$('meta[name="csrf-token"]').attr('content');
return {"X-CSRF-Token": token};
})
});
Тем не менее, я все еще получаю те же сообщения об ошибках...
1 ответ
Самое простое решение - добавить это в файл манифеста:
#= require jquery-ujs
Или вы можете расширить свой адаптер приложения, чтобы всегда включать токен CSRF:
ApplicationAdapter = DS.RESTAdapter.extend
headers:
"X-CSRF-Token": $('meta[name="csrf-token"]').attr('content')