gpt4 book ai didi

ajax - Backbone.js 模型获取 : parameters cause success/error/completed callbacks not to trigger

转载 作者:行者123 更新时间:2023-12-04 01:56:59 25 4
gpt4 key购买 nike

如果我输入参数,我不会收到成功/错误/完成的回调,但 Fiddler 显示 200 响应并且我请求的 json 数据在那里。 这就是关键。 Fiddler 显示往返成功,请求的数据在客户端且井然有序。 问题是未调用主干成功/失败/完成。只是得到一个大的东西。

使用完全相同的基本 URL,如果我取出参数(并从我的 Web 服务中并行删除它们),将触发成功和完成。以下是我的“带”参数获取:

myModel.fetch({
data: {
name: 'Bob',
userid: '1',
usertype: 'new'
}
}, {
success: (function () {
alert(' Service request success: ');
}),
error: (function (e) {
alert(' Service request failure: ' + e);
}),
complete: (function (e) {
alert(' Service request completed ');
})
});

Backbone 行为如何不同?它是相同的 URL,只是带或不带参数。

我猜区别在于在主干获取的引擎盖下,“有”参数场景是一个帖子,而“没有”参数是一个简单的获取。 IE 控制台通过稍微不同的输出反射(reflect)了这一点。

“使用”参数我的 IE 浏览器控制台报告请求需要 CORS 的警告(不是错误而是警告):

!SEC7118: http://example.com/service/myservice.asmx/myoperation?name=Bob&userid=1&usertype=new 的 XMLHttpRequest需要跨源资源共享 (CORS)。

我认为它只是告诉我“嘿,你提出了一个跨域请求,我让它通过了”。 “没有”参数我没有收到警告。我确实将服务 header 设置为:

访问控制允许来源:*

这些回应确实反射(reflect)了该政策。

所以问题是为什么主干成功/错误/完成的回调不会触发“带”参数?数据让它回来了。 Backbone 不应该反射(reflect)成功吗?

最佳答案

把您的 success , error , 和 complete您拥有的同一对象中的方法 data .应该只有一个对象。在引擎盖下 Backbone 只是使用 jQuery's ajax() method所以你传递给 fetch() 的对象可以使用任何可以包含在传递给 $.ajax() 的设置对象中的属性。 .

myModel.fetch({
data: {
name: 'Bob',
userid: '1',
usertype: 'new'
},
success: (function () {
alert(' Service request success: ');
}),
error: (function (e) {
alert(' Service request failure: ' + e);
}),
complete: (function (e) {
alert(' Service request completed ');
})
});

关于ajax - Backbone.js 模型获取 : parameters cause success/error/completed callbacks not to trigger,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18263344/

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