проблема с автозаполнением jquery

#ajax #jquery-ui #jquery #autocomplete

#ajax #jquery-пользовательский интерфейс #jquery #автозаполнение

Вопрос:

JS

 $( "#ethnicbg" ).autocomplete({
    source: function( request, response ) {
        $.ajax({
            url: 'ethnic/',
            type: 'POST',
            dataType: "jsonp",
            data: {
                q: request.term
            },
            success: function( data ) {
                response( $.map( data, function( item ) {
                    return {
                        label: item.title,
                        value: item.value
                    }
                }));
            }
        });
    },
    minLength: 1,
    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" );
    }
});
  

PHP

 header('Content-type: application/json');
$url    = $this->url->get();
$arr    = get_data(); // returns [{"title":"White","value":"White"}]
echo json_encode($arr);
  

Он возвращает данные, проблема где-то при успешном выполнении: функция,
незадолго до того, как response($.map.... я вставил console.log('TEST') dnt, похоже, вообще туда попадает или что-то предупреждает, что я делаю не так?

Решена

dataType: "jsonp", должно быть dataType: "json", Если что, может кто-нибудь объяснить разницу между json, jsonp? в этом случае, чтобы это помогло мне и другим людям, которые могут столкнуться?

Комментарии:

1. JSONP позволяет вам отправлять запрос на сервер в домене, отличном от запрашивающей страницы: en.wikipedia.org/wiki/JSONP

Ответ №1:

Решена

Тип данных: «jsonp», должен быть тип данных: «json», если что, может кто-нибудь объяснить разницу между json, jsonp? в этом случае, чтобы это помогло мне и другим людям, которые могут столкнуться?