jQuery可以为失败的AJAX调用提供后备功能吗?这是我的尝试:
function update() { var requestOK = false; $.getJSON(url, function(){ alert('request successful'); requestOK = true; }); if (!requestOK) { alert('request failed'); } }
不幸的是,即使调用了$ .getJSON()方法的回调函数,在回调函数有机会设置requestOK变量之前,我也会收到消息“请求失败”。我认为这是因为代码并行运行。有没有办法处理这种情况?我考虑过链接或某种方式等待AJAX请求,包括其回调函数。但是如何?有谁知道这是怎么做到的吗?
您将需要使用较低级别的$ .ajax调用或ajaxError函数。这是$ .ajax方法的用法:
function update() { $.ajax({ type: 'GET', dataType: 'json', url: url, timeout: 5000, success: function(data, textStatus ){ alert('request successful'); }, fail: function(xhr, textStatus, errorThrown){ alert('request failed'); } }); }
编辑 我将a添加timeout到$.ajax通话中并将其设置为五秒钟。
timeout
$.ajax