在我的前端JavaScript应用程序中,我发出一个ajax请求来从服务器获取数据。一旦我得到数据,我想将这条信息返回给视图。
var view_data;
$.ajax({
url:"/getDataFromServer.json",
//async: false,
type: "POST",
dataType: "json",
success:function(response_data_json) {
view_data = response_data_json.view_data;
console.log(view_data); //Shows the correct piece of information
return view_data; // Does not work. Returns empty data
}
});
// return view_data; --> Keeping the return outside of the ajax call works but then I need to make my ajax call synchronous in order for this return clause to be executed after the ajax call fetches data.
我该怎么做?
答案 0 :(得分:18)
而不是从data
返回success
:将data
传递给函数。
var view_data;
$.ajax({
url:"/getDataFromServer.json",
//async: false,
type: "POST",
dataType: "json",
success:function(response_data_json) {
view_data = response_data_json.view_data;
console.log(view_data); //Shows the correct piece of information
doWork(view_data); // Pass data to a function
}
});
function doWork(data)
{
//perform work here
}
答案 1 :(得分:1)
这是传递婴儿车并获得回应的最佳方式
function get_table_data_helper(table, id){
return $.ajax({
url: DOCUMENT_ROOT + '/php/get_table_data.php',
type: 'post',
data: {table: table, id: id},
async: false,
success:function(add_clint_res){
(jQuery.parseJSON(add_clint_res));
}
});
}
function get_table_data(table, id, column){
return jQuery.parseJSON(get_table_data_helper(table, id).success(function (data) { return jQuery.parseJSON(data); })['responseText'])[column];
}
然后像这样获取你的数据
get_table_data('city_table', '3', 'city_col')