通过使用jquery ajax函数,我可以执行以下操作:
$.ajax({
url: url,
type: 'GET',
async: true,
dataType: 'json',
data: data,
success: function(data) {
//Handle server response here
},
error: function(xhr, status, error){
//Handle failure here
}
});
根据以上代码,我有两个问题要问:
error
回调? {message: "There is an error"}
。 我认为无论响应什么字符串值服务器,如果客户端得到服务器的响应,无论如何都会触发 jquery.ajax()
success
回调。我想问一下服务器是否专门向我返回了带有
{message: 'There is an error'}
之类的字符串值的JSON对象,服务器是否可以执行某些操作,以便可以在 error
回调而不是success
回调中处理此响应? 最佳答案
当服务器的响应与您的期望不符时,将执行错误回调。因此,例如在这种情况下:
根据您的情况,数据是正确的(这是JSON消息)。如果要基于接收到的数据的值手动触发错误回调,则可以非常简单地进行。只需将匿名回调更改为命名函数即可。
function handleError(xhr, status, error){
//Handle failure here
}
$.ajax({
url: url,
type: 'GET',
async: true,
dataType: 'json',
data: data,
success: function(data) {
if (whatever) {
handleError(xhr, status, ''); // manually trigger callback
}
//Handle server response here
},
error: handleError
});