Jquery 如果webservice返回空结果,如何使用JSONP捕获错误
我想在URL提供的数据不存在时显示一个错误。我尝试了以下代码,但它不起作用Jquery 如果webservice返回空结果,如何使用JSONP捕获错误,jquery,error-handling,jsonp,Jquery,Error Handling,Jsonp,我想在URL提供的数据不存在时显示一个错误。我尝试了以下代码,但它不起作用 function getNum() { var num = document.getElementById('number').value; //alert(number); $('#shownum').empty(); $(document).ready(function() { $.jsonp({ url : 'http://localhost/
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');
}
});
});
}
函数getNum(){
var num=document.getElementById('number')。值;
//警报(编号);
$('#shownum').empty();
$(文档).ready(函数(){
$.jsonp({
网址:'http://localhost/json/num.php?&idnum=“+num,
callbackParameter:'callback',
成功:功能(数据、状态){
$。每个(数据、功能(i、项){
var a=“”;
var name=item.name;
var dob=item.dob;
var addr=item.addr;
b+=''+name+'
'; b+=dob+'
'; b+=addr+'
'; $('#shownum')。附加(b); }); }, 错误:函数(){ $('#shownum')。追加('未找到数据'); } }); }); }
例如,如果返回
?(null)
,如何将错误通知附加到jQuery Ajax文档中的错误回调的#shownum id
:
注意:跨域脚本和JSONP请求不调用此处理程序
使用jQuery的本机方法无法捕获请求中的错误
jQueryJSONP似乎为除浏览器之外的所有浏览器启用了错误处理。如果您有问题,我建议在项目页面上打开一个问题。我处理这个问题的方法是在JSONP响应中添加成功字段。试着这样做:
{"success":false,"response":"data or objects"}
你应该处理你的信息
第二种方法是处理成功事件,并检查响应是200(即成功)还是404(url不存在)
如果成功遇到问题,请尝试此页面:。同样,您感兴趣的参数是textStatus
另一种可能是为ajax调用设置超时:
timeout:5000,
。之后,您应该处理错误。当然,您只能猜测超时发生的原因。jsonp来自哪里?而且,为什么需要它?我的意思是如果给定的url返回错误?(null);因此,如何将错误消息附加到#shownumI don't knowledgeconsole.log(参数)
在错误处理程序中,结果是什么?
success(data, textStatus, jqXHR)