我希望在URL提供的数据不存在时显示错误。我已尝试使用以下代码,但它无效。
function getNum() {
var num = document.getElementById('number').value;
//alert(number);
$('#shownum').empty();
$(document).ready(function() {
$.jsonp({
url : 'http://localhost/json/num.php?&idnum='+num,
callbackParameter : 'callback',
success : function(data, status) {
$.each(data, function(i, item) {
var a = "";
var name = item.name;
var dob = item.dob;
var addr = item.addr;
b +='<br>' + name + '<br>';
b +=dob + '<br>';
b +=addr + '<br>';
$('#shownum').append(b);
});
},
error : function() {
$('#shownum').append('data not found');
}
});
});
}
例如,如果URL返回?(null);
,我该如何向#shownum id
附加错误通知。
答案 0 :(得分:1)
从jQuery Ajax文档中获取错误回调:
注意:不会为跨域脚本和JSONP请求调用此处理程序。
使用jQuery的本机方法无法捕获JSONP请求的错误。
jQuery-JSONP似乎为Opera以外的所有浏览器启用了错误处理。如果您遇到问题,我建议您在项目的GitHub页面上打开一个问题。
答案 1 :(得分:0)
我处理此问题的方法是将成功字段添加到JSONP响应中。试试这样:
{"success":false,"response":"data or objects"}
你应该处理你的信息。
第二种方法是处理成功事件并检查响应是否为200(成功)或例如404(url不存在)。
success(data, textStatus, jqXHR)
如果成功问题,请尝试以下页面:jQuery Ajax。同样,您感兴趣的参数是textStatus。
另一种可能是为你的ajax调用设置超时:timeout : 5000,
。之后你应该处理错误。当然你只能猜到为什么会超时。