gpt4 book ai didi

ember.js - 在 RESTAdapter 初始化后添加 header

转载 作者:行者123 更新时间:2023-12-04 22:46:55 28 4
gpt4 key购买 nike

我正在尝试添加 Authorization适配器初始化和使用后,我的适配器请求的 header 。我可以在创建 ApplicationAdapter 时以静态方式添加标题,但我似乎无法让它在后续 REST 调用中使用 header 。我正在尝试这个:

var auth= "Basic " + hash;
App.ApplicationAdapter.reopen({
headers: {
Authorization: auth
}
});

我已调试 RESTAdapterajax方法,以及 adapter.headers 的测试总是 undefined .

最佳答案

接受的答案没有解决推荐的方法在 ember-data 中不起作用的事实。我说推荐因为:

https://github.com/emberjs/data/blob/master/packages/ember-data/lib/adapters/rest_adapter.js#L88

https://github.com/emberjs/data/blob/master/packages/ember-data/lib/adapters/rest_adapter.js#L162
以及该文件中的其他位置。

此外,OP 提出的未定义问题具体发生在这里:
https://github.com/emberjs/data/blob/master/packages/ember-data/lib/adapters/rest_adapter.js#L619

因此,以下根本不起作用:

App.ApplicationAdapter.reopen({
headers: {token: 'reopen_token (NO WORK)' }
});

我试图指出这是一个问题,但它在一个小时内关闭了:
https://github.com/emberjs/data/issues/1820

希望核心将决定修复此问题或删除评论。但是,是的,现在看来您必须劫持 jQuery ajax 设置 Ember.$.ajaxPrefilter,或者覆盖 ajax自己在适配器上。

编辑:因此,在从 Ember 开发人员那里得到更多反馈后,看起来这个问题的核心是试图重新打开一个已经创建的实例。因此,在定义时使用计算机属性(因此它将根据需要进行更新)似乎是建议的方法。希望有所帮助(最近合并的拉取请求使这在引用文件的评论中更加明显: https://github.com/emberjs/data/pull/1818/files#diff-1d7f5a5b77898df15de501c3c38d4829R108)

编辑 2:让它在我的应用程序中工作,所以这里是代码,以防其他人卡住:
//app.js
App.ApplicationAdapter = DS.ActiveModelAdapter.extend({
namespace: 'api/v1',
headers: function() {
return {
token: this.get('App.authToken') || localStorage.getItem('token')
};
}.property("App.authToken")
});

//login-controller.js (only action shown..assume `data` has user/pass)
actions: {
login: function() {
$.post('/token/', data).done(function(user) {
App.set('authToken', user.token);
//Above will trigger adapters's header computed property to update

// Transition to previous attempted route
var attemptedTransition = self.get('attemptedTransition');
if(attemptedTransition) {
attemptedTransition.retry();
}
else {
self.transitionToRoute('yourapproute');
}
})
.fail(function(response) {
//fail handling omitted
});

关于ember.js - 在 RESTAdapter 初始化后添加 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21490476/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com