在 Jquery 自动完成远程数据源中获取事件错误

Wil*_*nda 3 error-handling jquery jquery-ui jquery-ui-autocomplete

我正在使用带有远程数据源的 Jquery 自动完成,但是,有时在我的服务器中尝试搜索时会返回错误,因为我使用的是像数据源这样的休息网络服务。我想知道我的网络服务返回了什么状态代码并打印错误消息示例:

$(idObjeto).autocomplete({
            source:url,
            minLength: 3,
            select:function(data,ui){
                $(formatIdJQuery(idObjValueReceptor)).val(ui.item.id);
            }
        }).data( "autocomplete" )._renderItem = function( ul, item ) {
        return $( "<li></li>" )
            .data( "item.autocomplete", item )
            .append( "<a>" + item.label + " - <strong>" + item.id + "</strong></a>" )
            .appendTo( ul );
        };
    }
Run Code Online (Sandbox Code Playgroud)

假设我的网络服务返回状态代码 404,例如,我想获取此状态代码并调用警报窗口。

这就是所有的人!

And*_*ker 5

您可以重新构建您的小部件以使用函数作为source参数,然后自己发出 AJAX 请求并在出现错误时执行您想做的任何操作:

$(idObjeto).autocomplete({
    source: function (request, response) {
        $.ajax({
            url: url,
            dataType: "json",
            data: request,
            success: function (data) {
                response(data);
            },
            error: function () {
                response([]); // send no results to the widget.
                alert("an error occurred!");
            }
        });
    },
    minLength: 3,
    select:function(data,ui){
        $(formatIdJQuery(idObjValueReceptor)).val(ui.item.id);
    }
}).data( "autocomplete" )._renderItem = function( ul, item ) {
    return $( "<li></li>" )
        .data( "item.autocomplete", item )
        .append( "<a>" + item.label + " - <strong>" + item.id + "</strong></a>" )
        .appendTo( ul );
    };
};
Run Code Online (Sandbox Code Playgroud)