gpt4 book ai didi

javascript - 为主干集合设置默认内容类型

转载 作者:行者123 更新时间:2023-11-30 08:49:16 24 4
gpt4 key购买 nike

我如何设置 Backbone 集合以始终在所有请求中发送内容类型“application/json”?

我试过的代码:

myCollection = Backbone.Collection.extend({
headers: {"Content-Type": 'application/json'},
url: '/foo'
});

和:

myCollection = Backbone.Collection.extend({
contentType: 'application/json',
url: '/foo'
});

但是在 fetch() 上没有发送内容类型?

最佳答案

一种方法是覆盖 Backbone.sync

var _sync = Backbone.sync;
Backbone.sync = function(method, model, options) {
options.beforeSend = function(xhr) {
xhr.setRequestHeader('Content-Type': 'application/json');
};
_sync.apply(Backbone, arguments);
}

然后如果你想为每个模型定义你的Content-Type,你可以这样做:

var _sync = Backbone.sync;
Backbone.sync = function(method, model, options) {
options.beforeSend = function(xhr) {
var contentType = model.contentType || null;
// var contentType = model.contentType || 'application/json'; // default to json
if(contentType) {
xhr.setRequestHeader('Content-Type': contentType);
}
};
_sync.apply(Backbone, arguments);
}

不过,如果您正在寻找一种方法让您的服务器在调用 fetch() 时返回 JSON,那么您真正需要的是 Accept标题。

关于javascript - 为主干集合设置默认内容类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19239427/

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