我需要为每个发送到JSON API的请求添加身份验证令牌。
如何通过适配器添加它?
答案 0 :(得分:3)
您可以使用jQuery.ajaxPrefilter(http://api.jquery.com/jquery.ajaxprefilter/)
这是一个例子: http://log.simplabs.com/post/57702291669/better-authentication-in-ember-js#gist6499654
Ember.$.ajaxPrefilter(function(options, originalOptions, jqXHR) {
if (!jqXHR.crossDomain) {
jqXHR.setRequestHeader('X-AUTHENTICATION-TOKEN', App.Session.get('authToken'));
}
});
将此代码添加到初始值设定项或为此创建一个新代码(例如ajax-initializer)。
答案 1 :(得分:1)
如果将它附加到URL就可以了,您可以通过覆盖buildURL方法,然后将其附加到结果来子类化适配器(按照您的要求)。对于授权,我会选择EntspAndi的答案,但更常见的是(对于使用问题标题发现此问题的人),这样的事情也可以正常工作:
import DS from 'ember-data';
export default DS.ActiveModelAdapter.extend({
buildURL: function(type, id, record){
console.log("Building URL: ", type);
var url = this._super(type, id, record);
url += "?extraparam=1"
return url
}
});