【发布时间】:2015-12-29 01:43:22
【问题描述】:
我刚开始使用 Rails 作为带有 Emberjs 前端的 api。我收到“已完成 422 无法处理的实体”,并且每当我尝试执行 POST 请求时都无法验证 CSRF 令牌的真实性
我看到一些帖子和解决方案说要插入此功能
$(function() {
var token = $('meta[name="csrf-token"]').attr('content');
return $.ajaxPrefilter(function(options, originalOptions, xhr) {
return xhr.setRequestHeader('X-CSRF-Token', token);
});
});
在 ember-cli 项目中实现 CSRF 的合适位置在哪里?
更新:2015 年 10 月 1 日
我的 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};
})
});
但是,我仍然收到相同的错误消息...
【问题讨论】:
-
您应该在您的应用程序适配器中添加它 - 您可以使用
headers哈希来执行此操作。