【问题标题】:jquery ajax callback in autocomplete自动完成中的jquery ajax回调
【发布时间】:2012-08-22 17:18:28
【问题描述】:

我正在使用 jquery 自动完成。当 ajax 请求完成时 jquery 调用 jsonpCallback 和响应。你能建议将 jsonpCallback(data) 函数放在哪里以使用 $.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);
            }
});  

【问题讨论】:

    标签: jquery jsonp


    【解决方案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

    【讨论】:

    • 给出错误,说 jsonpCallback 没有定义。这就是我问的,把 jsonpCallback 放在哪里
    • "jsonpCallback is not defined" 是您使用的 URL 的错误。由于 p0rter 正在使用您提供的 URL,我们无法知道正确的 URL 应该是什么。这里提到的 javascript 是完全有效的,这是原来的问题?
    【解决方案2】:
        $(".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 循环以遍历数据。

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

    【讨论】:

    • 你真的应该写一些东西来解释你做了什么
    • 给出错误,说 jsonpCallback 没有定义。这就是我问的,把 jsonpCallback 放在哪里
    猜你喜欢
    • 2020-01-19
    • 2012-03-28
    • 1970-01-01
    • 2013-06-02
    • 2014-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多