gpt4 book ai didi

javascript - 如何让主干模型在获取时执行 POST?

转载 作者:行者123 更新时间:2023-12-02 17:21:18 24 4
gpt4 key购买 nike

当我在模型上调用 fetch 时,我试图让主干去做一个 POST,但到目前为止我尝试过的似乎都不起作用。我还需要在 fetch 中传递多个参数(不仅仅是 ID),并且需要使用 jsonp。

我尝试重写模型中的同步方法,如下所示,以便它将执行 POST,但它似乎不起作用(仍在进行 GET 调用)。

sync: function(method, model, options) {
if (method === "read") {
method = "create";
}

return Backbone.sync.call(this, method, model, options);
}

获取看起来像这样:

var model = new MyModel();
var deferred = model.fetch({
dataType: "jsonp",
data: {
parm1: "somevalue",
parm2: false,
parm3: {
type1: "abc",
type2: "123"
}
}
});

关于为什么这行不通的任何想法?

非常感谢!!

最佳答案

您可以将 type 作为 fetch 方法 options 参数的一部分传递。将会发生的情况是,Backbone 会将您的请求同步为 read 方法(确实如此),并且在调用 jQuery 的 ajax 方法之前,它将覆盖类型,正如您在 Backbone 的源代码中看到的那样。

var xhr = options.xhr = Backbone.ajax(_.extend(params, options));

所以你的代码应该看起来像这样:

var model = new MyModel();
var deferred = model.fetch({
type: "post",
dataType: "jsonp",
data: {
parm1: "somevalue",
parm2: false,
parm3: {
type1: "abc",
type2: "123"
}
}
});

请记住,传递给 fetch 方法的 options 基本上是 jQuery 的 ajax 选项,以及 Backbone 选项的扩展。

关于javascript - 如何让主干模型在获取时执行 POST?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23922854/

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