gpt4 book ai didi

javascript - 不知道如何修改fetch?

转载 作者:行者123 更新时间:2023-12-02 16:48:10 27 4
gpt4 key购买 nike

我需要添加一个身份验证 header ,到目前为止我已经有了这个,但我被困在这里。

initialize: function(options) {
_.extend(this, _.pick(options, 'col'));

this.listenTo(this.model, 'change', this.render);
window.dispatcher.trigger('queryBox:close');

this.model.collectionName = this.col;

if (this.model.id) {
this.model.fetch();
} else {
this.renderNew();
this.delegateEvents();
}
},

以前从未使用过主干,我不知道如何返回结果,以便主干可以像第一个一样渲染它?

结果本身是正确的,只需将其传递给backbone即可。在第一个版本中,它使用默认方式来执行此操作,但无法弄清楚如何手动执行此操作。

fetch: function() {
var self = this;

Backbone.ajax({
url: self.url(),
headers: {'Authorization':jwt}
})
.done(function(res){
console.log('Help')
})
.fail(function(jqXHR, textStatus) {
tiedotApp.notify('danger', 'Error loading document: ' + jqXHR.responseText, 8000);
})
},

最佳答案

我不会建议您更改 fetch 的默认实现,因为它的行为可以简单地使用 options 哈希进行配置。但如果您需要的话,让我们澄清一些事情。

model.fetch 使用 jQuery.ajax() 与服务器交互以及传递给 fetch 的所有选项也将传递给 $.ajax() (其中一些可以在中间件中重写,但不适合您的情况)。

model.fetch 需要返回 Promise 才能将其用于完成和失败回调链。

<小时/>

您可以通过多种方式来实现您的任务。

<强>1。如果模型在一个地方获取:

然后你可以通过更改它:

model.fetch({
headers: {'Authorization':jwt},
success: function () { consoele.log("Help") ;},
error: function(jqXHR, textStatus, errorThrown) {}
});

<强>2。如果模型在很多地方获取,你需要保持干燥

以这种方式重写 fetch:

fetch: function(options) {
options = options || {};
options.headers = options.headers || {};

options.header['Authorization'}] = jwt;
options.success = yourSuccessFunction;
options.error = yourErrorFunction;

return this.constructor.__super__.fetch.call(this, options);
},

这样您就不会破坏 native 实现。

关于javascript - 不知道如何修改fetch?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26923588/

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