Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如果webservice返回空结果,如何使用JSONP捕获错误_Jquery_Error Handling_Jsonp - Fatal编程技术网

Jquery 如果webservice返回空结果,如何使用JSONP捕获错误

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/

我想在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');
            }
        });
    });
}
函数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 knowledge
console.log(参数)
在错误处理程序中,结果是什么?
success(data, textStatus, jqXHR)