Ember JS设置请求标头

时间:2015-08-07 19:37:34

标签: javascript ember.js ember-data ember-cli

我试图在用户注册到Ember数据请求标题后设置从响应中收到的身份验证令牌。

这是我的application.js代码

import DS from 'ember-data';

export default DS.RESTAdapter.extend({

  namespace: 'merchant',
  host: 'http://192.168.1.173:3000',


  headers: function() {
    return {
      "token":localStorage.token,
    };

  }.property("localStorage.token","token")

});

我尝试在收到注册用户API调用的成功响应后设置标头。

var register=this.store.createRecord('registermerchant',data);
  register.save().then(function(response){
    console.log(response.success);
    if(response.get('success')){


      self.set('token',response.get('token'));
      self.transitionToRoute('merchanthome')

    }

  tokenChanged: function() {

    localStorage.token=this.get('token');

    console.log(localStorage.token);

  }.observes('token'),

我能够看到更新的localStorage.token值,但由于某种原因,此值不会设置为reqest标头令牌密钥。

令牌未更新到标题,只有在页面刷新后才会将新更新的令牌发送到服务器。

任何关于我可能做错的想法,任何提示将不胜感激。 感谢

1 个答案:

答案 0 :(得分:1)

localStorage不是可观察的Ember对象,因此您的property("localStorage.token")只会被评估一次。相反,每次都要对它进行重新评估:

headers: function() {
    return {
      "token":localStorage.token,
    };

  }.property().volatile()