如果jQuery AJAX调用变量,则保存结果

时间:2014-08-21 15:06:37

标签: javascript jquery ajax json

我有一个PHP脚本,它接受一个查询字符串返回和JSON对象。我正在尝试进行一个AJAX调用,它将返回此JSON对象,以便我可以在jQuery自动完成中使用它。这是我到目前为止的AJAX调用

$(document).ready(function(){

  $("#searchBox").keyup(function(){
   var search_result = $.ajax({
      url:"/mm5/service/product_lookup_json.php",
      type: "GET",
      dataType: "json",
      jsonp: false,
      data: "query=" + $("#searchBox").val(),
      success: function(data){
        return data;
      }
    });

    console.log(search_result);
   });
 });

这会将AJAX调用的结果发送到控制台(javascript对象)。我可以在该对象中看到JSON。我认为我需要做的就是访问我想要的数据

console.log(search_result.responseJSON);

但这只是给了我未定义的。我在这里做错了什么?

2 个答案:

答案 0 :(得分:0)

这不是这样做的方法,因为它是异步调用,因此ajax调用不会返回数据。试试这个

$(document).ready(function(){
    var search_result;
    $("#searchBox").keyup(function(){
        $.ajax({
            url:"/mm5/service/product_lookup_json.php",
            type: "GET",
            dataType: "json",
            jsonp: false,
            data: "query=" + $("#searchBox").val(),
            success: function(data){
                search_result =  data;
                console.log(search_result);
            }
        });
     });
 });

答案 1 :(得分:0)

您需要等待AJAX​​调用完成才能访问它返回的数据。

$(document).ready(function(){

  $("#searchBox").keyup(function(){
   $.ajax({
      url:"/mm5/service/product_lookup_json.php",
      type: "GET",
      dataType: "json",
      jsonp: false,
      data: "query=" + $("#searchBox").val(),
      success: function(data){

        //data is available at this points
        console.log(data);

      }
    });
   });
 });