使用Ajax Success Handler返回JSON对象

时间:2013-04-09 14:48:12

标签: javascript jquery ajax json

我使用Ajax命令从本地服务器查询数据,我需要通过成功处理程序返回JSON对象。

我的Ajax命令如下所示:

var json = $.ajax({
    url: 'http://localhost:9200/wcs/routes/_search',
    type: 'POST',
    data: JSON.stringify({
        "query": {
            "match_all": {}
        }
    }),
    dataType: 'json',
    async: false
});

我想在已经分配的变量中返回JSON文档:json

我可以在命令中执行类似的操作吗? (我知道这不是正确的代码):

success: return(json);
});

3 个答案:

答案 0 :(得分:1)

你很亲密,

var json;
$.ajax({
    url: 'http://localhost:9200/wcs/routes/_search',
    type: 'POST',
    data :
        JSON.stringify(
            {
                "query" : { "match_all" : {} }
        }),
    dataType : 'json',
    async: false,
    success: function(data){
        json = data;
    }
})
console.log(json);

但是async: false是一个坏主意,所以我建议在回调中使用json。

$.ajax({
    url: 'http://localhost:9200/wcs/routes/_search',
    type: 'POST',
    data :
        JSON.stringify(
            {
                "query" : { "match_all" : {} }
        }),
    dataType : 'json',
    //async: false,
    success: function(data){
        console.log(data);
    }
})

答案 1 :(得分:0)

Success期望在请求成功时调用函数。

你可以这样做:

var json:
....
....

success: function(data){
       json = data;
   }
});

答案 2 :(得分:0)

 var arr = new Array();
 success: function (data) {
    $.map(data, function (item) {
          arr.push({
              prop_1: item.prop_1,
              prop_2: item.prop_2,
              prop_3: item.prop_3
             });
           });
      }

您可以将prop_1,prop_2与代码隐藏重命名