通过使用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调用jquery.ajax()回调???
error
如果服务器响应给我一个带有字符串消息“ 存在错误 ” 的json对象,该怎么办。这意味着请求仍然成功发送,但是我得到了服务器响应{message: "There is an error"}。
{message: "There is an error"}
我认为无论响应什么字符串值服务器,如果客户端得到服务器的响应,无论如何都会触发 jquery.ajax() success回调。
success
我想问一下服务器是否专门向我返回了带有字符串值的JSON对象{message: 'There is an error'},服务器是否可以执行某些操作,以便可以在 jquery.ajax() error回调而不是success回调中处理此响应?
{message: 'There is an error'}
当服务器的响应与您的期望不符时,将执行错误回调。因此,例如在这种情况下:
根据您的情况,数据是正确的(这是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 });