2014-06-16 58 views
-1

我试图从ajax_autocomplete.php获得一些JSON数据,然后在成功回调中做些事情。问题是,我无法进入成功回调,错误回调无论如何说。jQuery AJAX成功回调不适用于JSON数据类型

我检查了我的JSON,它是有效的,我一直在尝试两个小时,无法找到解决方案。

$("#reg").autocomplete({ 
    minLength: 2, 
    dataType: 'json', 
    source: 'ajax_autocomplete.php', 
    success : function(data){ 
    alert('success'); 
    }, 
    error : function(xhr, status){ 
    console.log(status); 
    } 

});

这里是我的JSON:

[{"label":"Test id 1","id":"1"},{"label":"Test id 2","id":"2"}] 

我尝试添加

type: 'GET', 
async : false, 

但它无法正常工作。任何帮助将不胜感激。

+3

你似乎在试图遵循'jQuery.ajax',而不是'jQuery.autocomplete'的文档,大部分的这些选项不会出现我[文档中](HTTP提到://api.jqueryui.com/autocomplete/)。 – Quentin

回答

0
$("#reg").autocomplete({ 
    minLength: 2, 
    source: function(request, response) { 
     $.ajax({ 
      url: "ajax_autocomplete.php", 
      dataType: "json", 
      success: function(data) { 
       response($.map(data, function(item) { 
        return { 
        label: item.label, 
        value: item.id 
        } 
       })); 
       // do something 
      } 
     }); 
    }, 

    select: function(event, ui) { 
     // ... 
    }, 
    open: function() { 
     // ... 
    }, 
    close: function() { 
     // ... 
    } 
}); 
0
$.ajax({ 
       url : "ajax_autocomplete.php", 
       data : {}, 
       type : "GET", 
       success : function(data) { 
          alert(data); 
       }, 
       error : function(err) { 
          alert(err); 
       }      
    });