Rob*_*ert 11 parameters ajax callback backbone.js
如果我输入参数,我没有成功/错误/完成回调,但Fiddler显示200响应,我的请求的json数据就在那里. 这是关键.Fiddler显示往返是成功的,所请求的数据在客户端并且处于良好状态. 问题是骨干成功/失败/完成未调用.只是得到一个大的东西.
使用完全相同的基本URL,如果我将参数取出(并将其从我的Web服务中并行删除),则会触发成功和完成.下面是我的获取"with"参数:
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 ');
})
});
Run Code Online (Sandbox Code Playgroud)
骨干行为如何不同?它是相同的URL,只有或没有参数.
我猜测的区别在于,在主干fetch的引擎盖下,"with"参数场景是一个帖子而"without"参数是一个简单的get.IE控制台以略微不同的输出反映出这一点.
"使用"参数我的IE浏览器控制台会报告请求需要CORS的警告(不是错误,而是警告):
!SEC7118:XMLHttpRequest for http://example.com/service/myservice.asmx/myoperation?name=Bob&userid=1&usertype=new required Cross Origin Resource Sharing(CORS).
我想它只是告诉我"嘿,你提出了一个交叉来源请求,我让它通过"."没有"这些参数我没有得到那个警告.我确实将服务标头设置为:
Access-Control-Allow-Origin:*
反应的确反过来反映了这一政策.
所以问题是为什么主干成功/错误/完成回调不会触发"带"参数?数据回归.骨干不应该反映成功吗?
idb*_*old 15
将您的success,, error和complete方法放在同一个对象中data.应该只有单个对象.在引擎盖下,Backbone只使用jQuery的ajax()方法,因此传递给的对象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 ');
})
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16483 次 |
| 最近记录: |