2017-02-06 3 views
0

Основываясь на https://guides.emberjs.com/v2.11.0/models/customizing-adapters/#toc_headers-customization,Эмбер заголовки адаптера данных не включены в запрос

import DS from 'ember-data'; 
import config from '../config/environment'; 
import DataAdapterMixin from 'ember-simple-auth/mixins/data-adapter-mixin'; 

export default DS.JSONAPIAdapter.extend(DataAdapterMixin, { 
    session: Ember.inject.service(), 

    headers: Ember.computed({ 
     get() { 
      let headers = {}; 
      this.get('session') 
       .authorize('authorizer:custom', (headerName, headerValue) => { 
        headers[headerName] = headerValue; 
       }); 
      return headers; 
     } 
    }), 

    queryRecord(modelName, query) { 
     return Ember.$.getJSON(`${config.host}/users/me`); 
    } 
}); 

Я определил headers свойство внутри адаптера, однако, то запрос отправить на сервер не существует в заголовке нет Authentication (в результате я продолжаю получать 401 Несанкционированная ошибка).

Я попытался зарегистрировать свойство заголовков в методе queryRecord, и он отображает правильную информацию заголовка.

ответ

1

Я думаю, что проблема заключается в вычисленном кете prop.

Вы можете сделать:

headers: Ember.computed('session.isAuthenticated', { 
     get() { 
      let headers = {}; 
      this.get('session') 
       .authorize('authorizer:custom', (headerName, headerValue) => { 
        headers[headerName] = headerValue; 
       }); 
      return headers; 
     } 
    }), 

Или

headers: Ember.computed({ 
     get() { 
      let headers = {}; 
      this.get('session') 
       .authorize('authorizer:custom', (headerName, headerValue) => { 
        headers[headerName] = headerValue; 
       }); 
      return headers; 
     } 
    }).volatile(), 
Смежные вопросы