JSONP是否适用于jquery 1.4

时间:2012-01-22 13:42:25

标签: jquery jsonp

我有这段代码:

$(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 个答案:

答案 0 :(得分:2)

演示: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);