Удаленный источник данных JSONP у меня не работает

что бы я ни делал, я не мог получить оповещение («тест»); для отображения предупреждения. по какой-то причине этот jsonp (хотя он правильно извлекает данные: http://u.kodingen.com/1JsHcN) никогда не вызывает функцию успеха.

если я скопирую и вставлю здесь пример: http://jqueryui.com/demos/autocomplete/#remote-jsonp работает прекрасно. но мой URL-адрес - нет.

Любые идеи?

        $("#venue_in").autocomplete({
        source: function(request, response) {
            $.ajax({
                url: "http://x.com/y.php",
                dataType: "jsonp",
                data: request,
                cache: false,                
                success: function(data) {
                    alert("test");
                    response(data);
                }
            })
        },
        minLength: 2,
    });

person Devrim    schedule 15.09.2010    source источник
comment
stackoverflow.com/questions/309953/?   -  person Devrim    schedule 15.09.2010


Ответы (1)


Похоже, ваш URL-адрес не возвращает действительный JSONP. Это не то же самое, что JSON.

если ваш обычный URL-адрес JSON (http://x.com/y.php) возвращает JSON следующим образом:

[{'label':'blah blah','value':3},{'label':'foo",'value':42}]

тогда тот же URL-адрес JSONP будет выглядеть примерно так:

`http://x.com/y.php?callback=myfunc`

и он вернет что-то вроде этого:

myfunc([{'label':'blah blah','value':3},{'label':'foo",'value':42}])

Похоже, что ваш URL-адрес не включает часть JSONP с буквой "P".

страница википедии не очень понятна, но если вы прокрутите вниз до части JSONP, а затем внимательно прочтите, это должно иметь смысл. (Если у кого-то есть ссылка получше, чем википедия, опубликуйте ее).

person Lee    schedule 15.09.2010
comment
Разве это не задание $ .ajax, чтобы проанализировать это в произвольную функцию обратного вызова jsonp1234567 и получить это как «данные» в успехе: функция (данные)? - person Devrim; 15.09.2010