为每个 API 请求添加参数

Add parameter to every API request

我需要为发送到 JSON API 的每个请求添加身份验证令牌。

如何通过适配器添加它?

您可以使用 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-初始化程序)。

如果将其附加到 URL 没问题,您可以通过重写 buildURL 方法将适配器子类化(如您所要求的),然后将其附加到结果。对于授权,我会寻求 EntspAndi 的回答,但更常见的是(对于使用问题标题找到这个 SO 问题的人),这样的事情也很好:

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
    }

  });