Удаленные данные с опережением не отображаются в текстовом поле, но локальные данные работают

Пробовал некоторое время, и не могу найти ответ на этот вопрос. Typeahead работает с локальными данными, но не с удаленными данными. Хотя я вижу запрос в консоли, но он не возвращает никаких данных в typeahead.

В консоли, когда я печатаю, я получаю:

XHR finished loading: GET "http://mypath/msqCity.php?City=ne"
XHR finished loading: GET "http://mypath/msqCity.php?City=new"

И так далее, пока я печатаю. Но ничего в поле ввода.

У меня есть страница PHP с запросом на ней. Страница запроса работает нормально и возвращает данные. Я заметил, что ключевое значение массива отображается с двойными кавычками вместо одинарных.

Я использую json_encode для результатов, и он выводит

[{"City":"New York","StateProvince":"NY","Country":"US"},
 {"City":"Newton","StateProvince":"MA","Country":"US"},
 {"City":"New Orleans","StateProvince":"LA","Country":"US"}...]

Я попытался остановить двойные кавычки и получить:

[{City:"New York",StateProvince:"NY",Country:"US"},
 {City:"Newton",StateProvince:"MA",Country:"US"},
 {City:"New Orleans",StateProvince:"LA",Country:"US"}...]

Ни один из них не работает удаленно.

Если я помещаю данные в локальные данные для ввода и вставляю несколько записей, это работает.

<body>
    <div id="remote">
        <input class="typeahead" type="text" placeholder="Enter City">
    </div>
    <script type="text/javascript">

        var cities = new Bloodhound({
            datumTokenizer: Bloodhound.tokenizers.obj.whitespace('City'),
            queryTokenizer: Bloodhound.tokenizers.whitespace,
            /* local:    [{
                           City: 'Hartford',
                           StateProvince: 'CT',
                           Country : 'US'
                       },
                       {
                           City: 'Trumbull',
                           StateProvince: 'CT',
                           Country: 'US'
                       },
                       {
                           City: 'New York',
                           StateProvince: 'NY',
                           Country: 'US'
                       },
                        {
                           City: 'New Britain',
                           StateProvince: 'CT',
                           Country: 'US'
                       }
                   ]});   */
        prefetch: 'ScriptLibrary/msqCity.php',
        remote: {
            url: 'ScriptLibrary/msqCity.php?City=%QUERY',
            wildcard: '%QUERY'
            }
        });

        $('#remote .typeahead').typeahead(null, {
            name: 'City',
            display: 'City',
            source: cities
        });
    </script>
</body>

Любое направление будет оценено.


person pcm70    schedule 02.10.2015    source источник


Ответы (1)


Проблема заключалась в том, что запрос находился на php-странице с html. Я удалил весь html и просто оставил запрос, и теперь все в порядке.

person pcm70    schedule 05.10.2015