我在主干 ajax 成功方法中有自己的自定义错误代码,以防服务器返回错误。问题是这段代码在我的应用程序中重复,我想在一个地方编辑成功函数,所以我不必在每次 ajax 成功时不断重复这个错误处理程序。我想编辑成功函数以包含此错误检查包装器。你知道怎么做吗?
这是我的一个观点中我的成功方法的一个例子:
"success" : function success(model, data)
{
if(data['error'] !== undefined && data['error'].length === 0)
{
message('error', 'Whoops! System Error. Please refresh your page.');
}
else if(data['error'] !== undefined)
{
message('error', data['error']);
}
else
{
//add templates and do stuff here
}
},
理想情况下,我想将其设置在某个配置中,然后我就可以使用:
"success" : function success(model, data)
{
// add templates and do stuff here
}
这可能吗?我尝试使用 ajaxSetup 但这似乎对我不起作用。
更新的代码仍然不起作用:
这确实让我走得更远,但错误处理程序没有起到包装器的作用。数据没有传递到我的 ajax 调用中。事实上,我在 ajax 调用上的成功方法根本不再运行。我在我的 ajax 调用中尝试了 console.log("some text") 但没有输出任何内容。你知道这有什么问题吗?
// Save the original Sync method
defaultSync = Backbone.sync;
//Over ride Backbone async
Backbone.sync = function(method,
model,
options)
{
success = options.success
options.success = function(data)
{
if(data['error'] !== undefined && data['error'].length === 0)
{
message('error', 'Whoops! System Error. Please refresh your page.');
}
else if(data['error'] !== undefined)
{
message('error', data['error']);
}
else
{
success(model,
data);
}
}
return defaultSync(method,
model,
options)
}