自动完成中的jquery ajax回调

时间:2012-08-22 08:52:42

标签: jquery jsonp

我正在使用jquery autocomplete。当ajax请求完成jquery调用带有响应的jsonpCallback。你建议把jsonpCallback(数据)函数放在哪里使用$ .each中的数据

$(".autoComplete").autocomplete({ source: function(req, add){

            $.ajax({
                  type: "GET",
                  url: "http://herokory.herokuapp.com/autocomplete/jsonpCallback/a",
                  dataType:"jsonp"
            });

                var suggestions = [];  

                //process response  
                $.each(data, function(i, val){       //how do I get data variable                         
                suggestions.push(val.value); });

                 add(suggestions);
            }
});  

2 个答案:

答案 0 :(得分:1)

根据:jquery api 你应该实施“成功阻止”

$.ajax({
  url: 'ajax/test.html',
  success: function(data) {
    $('.result').html(data);
    alert('Load was performed.');
  }
});

为您的例子:

var suggestions = [];  
$(".autoComplete").autocomplete({ source: function(req, add){

            $.ajax({
                  type: "GET",
                  url: "http://herokory.herokuapp.com/autocomplete/jsonpCallback/a",
                  dataType:"jsonp"
                  success: function(data) {

                    $.each(data, function(i, val){                         
                    suggestions.push(val.value); });
                          add(suggestions);
                    }
                 }
            });



});  

// 编辑:也许这可以提供帮助:jsonpcallback

答案 1 :(得分:0)

    $(".autoComplete").autocomplete({ source: function(req, add){

            $.ajax({
                  type: "GET",
                  url: "http://herokory.herokuapp.com/autocomplete/jsonpCallback/a",
                  dataType:"jsonp"
    success: function(data) 
            {
                alert('Here is my data' +  data);
            }


            });

}); 

您应该在ajax调用中添加一个成功函数,这意味着如果GET请求成功,请执行以下操作:.each循环将迭代数据。

还有其他块可以帮助您调试代码,例如错误块等。