Работает ли JSONP с jquery 1.4 - PullRequest
       6

Работает ли JSONP с jquery 1.4

0 голосов
/ 22 января 2012

У меня есть этот код:

$(document).ready(function(){

    $("#search_input").autocomplete({
      source: function(request, response) {
        $.ajax({
          url: 'http://query.yahooapis.com/v1/public/yql',
          dataType: 'JSONP',
          data: {
            format: 'json',
            q: 'select * from xml where url="http://google.com/complete/search?hl=nl&output=toolbar&q=' + encodeURIComponent(request.term) + '"'
          },
          success: function(data) {
            response($.map(data.query.results.toplevel.CompleteSuggestion, function(item) {
              return { label: item.suggestion.data, value: item.suggestion.data };
            }));
          }
        });
      }
    });

    });

По какой-то причине он не работает с Jquery 1.4, но работает с 1.7. Это потому, что JSONP не был представлен с 1.4?Как я могу заставить его работать с 1.4?Вот скрипка JsFiddle

1 Ответ

2 голосов
/ 22 января 2012

Демо: http://jsfiddle.net/TnPRA/2/

У вас две проблемы:

  1. Неправильное использование JSFiddle.
    • Вы указали ресурсы в верхнем левом разделе при загрузке Mootools.
      Правильное использование должно выбрать jQuery ____ при использовании Choose framework,
    • Вы также добавили сценарий в раздел HTML и сценарий (= запускаете один и тот же код дважды).
  2. Критическая часть вашего кода вызвана самим jQuery:
    В jQuery 1.4 ответом является строка. Чтобы заставить код работать в более старых версиях jQuery, добавьте одну строку в обработчик success:

    success: function(data) {
      if (typeof data == 'string') data = $.parseJSON(data);
    
...