使用Ajax成功处理程序返回JSON对象

问题描述:

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

我阿贾克斯命令如下:

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); 
}); 
+0

就快,我建议你在成功的函数把'json'并确保其不为空 – chriz 2013-04-09 14:51:47

+0

你应该看看这个问题:http://*.com/q/14220321/218196。 – 2013-04-09 15:01:55

你接近,

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); 
    } 
}) 
+0

谢谢Kevin!这完美的作品!如果我可以的话,我会向上箭头... – 2013-04-09 15:13:04

Success期待的,如果请求成功时调用的函数。

你可以这样做:

var json: 
.... 
.... 

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

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 VS到你的代码隐藏