$ .ajax()。then()没有被执行

时间:2014-11-05 00:39:12

标签: javascript jquery ajax jquery-mobile cordova

我正在尝试使用以下网址在Jquery Mobile中执行远程代码完成示例:http://demos.jquerymobile.com/1.4.0/listview-autocomplete-remote/

我使用最新的PhoneGap和jquery mobile 1.4.3版本

自动完成javascript代码:

$(function() {
            $( "#drink_brand_autocomplete" ).on( "filterablebeforefilter", function ( e, data ) {
                var $ul = $( this ),
                        $input = $( data.input ),
                        value = $input.val(),
                        html = "";
                $ul.html( "" );
                if ( value && value.length > 2 ) {
                    $ul.html( "<li><div class='ui-loader'><span class='ui-icon ui-icon-loading'></span></div></li>" );
                    $ul.listview( "refresh" );
                    $.ajax({
                        url: "http://myalcoholist.com/drink-management/drink/drink-brand-autocomplete",
                        dataType: "jsonp",
                        crossDomain: true,
                        data: {
                            q: $input.val()
                        }
                    })
                            .then( function ( response ) {
                                console.log("response");
                                $.each( response, function ( i, val ) {
                                    html += "<li>" + val + "</li>";
                                });
                                console.log(html);
                                $ul.html( html );
                                $ul.listview( "refresh" );
                                $ul.trigger( "updatelayout");
                            });
                }
            });

    });
在Chrome开发者控制台中,我可以看到ajax调用正在执行,服务器返回一个json数组。

.then()没有被执行,没有想法为什么。 我试过.done()而不是我得到了相同的结果。 我没有得到任何javascript错误。

任何想法?

0 个答案:

没有答案