Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.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
Javascript Jquery自动完成插件未显示成功响应_Javascript_Jquery_Jquery Plugins_Autocomplete - Fatal编程技术网

Javascript Jquery自动完成插件未显示成功响应

Javascript Jquery自动完成插件未显示成功响应,javascript,jquery,jquery-plugins,autocomplete,Javascript,Jquery,Jquery Plugins,Autocomplete,我使用的jquery自动完成插件如下 $( "#city" ).autocomplete({ source: function( request, response ) { $.ajax({ url: "http://www.abc.com/test.php", dataType: "jsonp", data: {

我使用的jquery自动完成插件如下

$( "#city" ).autocomplete({
            source: function( request, response ) {
                $.ajax({
                    url: "http://www.abc.com/test.php",
                    dataType: "jsonp",
                    data: {
                        featureClass: "P",
                        style: "full",
                        maxRows: 12,
                        name_startsWith: request.term
                    },
                    success: function( data ) {
                        alert("hello");
                    }
                });
            },
            minLength: 2,
            select: function( event, ui ) {
                log( ui.item ?
                    "Selected: " + ui.item.label :
                    "Nothing selected, input was " + this.value);
            },
            open: function() {
                $( this ).removeClass( "ui-corner-all" ).addClass( "ui-corner-top" );
            },
            close: function() {
                $( this ).removeClass( "ui-corner-top" ).addClass( "ui-corner-all" );
            }
        });
我没有得到任何关于成功的警告

firefox显示我得到了这个响应

[{"label":"mark2","value":1},{"label":"abc1","value":20}]
它是否期望得到其他任何回报

鉴于该程序运行良好,并且按照预期使用works复制相同的示例,您的程序不工作的原因可能是页面中的其他地方出现javascript错误,停止了进一步的javascript执行

此外,我还复制了您的示例,更改为仅在成功回调中添加一个
警报
——但您也应该注意,jQueryUI自动完成的文档声明:

当提供自定义源回调来处理请求期间的错误时,这一点很重要即使遇到错误,也必须始终调用响应回调。这确保小部件始终具有正确的状态

这不是你的错误,但值得注意


EDIT我想到了一个想法,如果您的ajax调用实际生成了服务器端错误(http500),那么您将永远不会进入
success
回调,也永远不会收到警报。尝试将错误回调添加到ajax调用中,以查看是否存在这种情况:

$.ajax({
    url: "http://www.abc.com/test.php",
    dataType: "jsonp",
    data: {
        featureClass: "P",
        style: "full",
        maxRows: 12,
        name_startsWith: request.term
    },
    success: function( data ) {
        alert("hello");
    },
    error: function (xhr, textStatus, errorThrown){
        alert("error: " + errorThrown);
    }
});

为什么
数据类型:jsonp
?你有跨域问题吗?这个例子在我的网站上也很好,但唯一的问题是当我将URL更改为我的URL时,它就不起作用了。我只想知道那是什么类型的数据
http://ws.geonames.org/searchJSON
URL返回,这样我也可以返回相同的数据。当前,我的数据返回如问题中所示。您可以通过使用浏览器(例如/)执行get请求,轻松检查geonames服务的返回。但是,让这个例子起作用的不是返回的内容,而是它们如何将结果映射到jQueryUI AutoComplete所期望的格式,这是我想知道的,我的例子中的结果有什么问题。我的url返回这个
[{“label”:“mark2”,“value”:1},{“label”:“abc1”,“value”:20}]
。即使是警报框也不是coming@john110016-您的方法的响应与未显示的警报无关-正如我在回答中所述,如果您没有收到警报,是因为您的代码中存在javascript错误。使用jsfiddle.net重新创建您遇到的问题,它将更容易帮助您!如果我像geonames一样使用相同的URL,那么它就可以正常工作。所以这意味着没有其他错误。但如果我使用我的URL,那么我就不会得到警告框。这样可以吗,还是你还说我有其他错误