我想要从发出请求的方法生成的响应,我需要在另一个方法中生成响应。请参考以下代码以供进一步参考。
function foodLog(){
var data={
servings : $('#demo_vertical').val(),
calories : $('#calories').text(),
carbs : $('#carbs').text(),
};
$.ajax({
type : "POST",
contentType: "application/json; charset=utf-8",
url : "/fitbase/foodlog/create",
dataType: "json",
data : JSON.stringify(data),
success : function(response) {
},
error : function(e) {
alert("Object" +e);
}
});
};
我需要在下面的方法中获得成功后生成的响应。我写了下面的代码,但我无法得到答案。请帮帮我。
function getValues(){
var response = foodLog();
console.log(response)
}
答案 0 :(得分:1)
您可以使用回调函数来有效地执行此操作。
function foodLog(callback){ //sending callback function as input
var data={
servings : $('#demo_vertical').val(),
calories : $('#calories').text(),
carbs : $('#carbs').text(),
};
$.ajax({
type : "POST",
contentType: "application/json; charset=utf-8",
url : "/fitbase/foodlog/create",
dataType: "json",
data : JSON.stringify(data),
success : callback, //calling callback function when success
error : function(e) {
alert("Object" +e);
}
});
}
//callback function to handle response
function callback(response){
console.log(response);
}
当您想要调用函数“foodLog”时,
foodLog(callback);
注意:在调用之前,您必须确保已加载函数回调。您可能必须使用,
$(document).ready(function(){
foodLog(callback);
});
答案 1 :(得分:0)
也许这个你想要的
success : function(response) {
if (response == true){
window.location = "/fitbase/foodlog/create/";
getValues(response);
}
}
答案 2 :(得分:0)
function getValues(response){
console.log(response);
}
function foodLog(){
var data={
servings : $('#demo_vertical').val(),
calories : $('#calories').text(),
carbs : $('#carbs').text(),
};
$.ajax({
type : "POST",
contentType: "application/json; charset=utf-8",
url : "/fitbase/foodlog/create",
dataType: "json",
data : JSON.stringify(data),
success : function(response) {
getValues(response);
},
error : function(e) {
alert("Object" +e);
}
});
};
答案 3 :(得分:0)
以这种方式使用变量。
var foodLogResponse = '';
function foodLog(){
var data={
servings : $('#demo_vertical').val(),
calories : $('#calories').text(),
carbs : $('#carbs').text(),
};
$.ajax({
type : "POST",
contentType: "application/json; charset=utf-8",
url : "/fitbase/foodlog/create",
dataType: "json",
data : JSON.stringify(data),
success : function(response) {
foodLogResponse = response;
},
error : function(e) {
alert("Object" +e);
}
});
};

否则你可以在成功处理程序中调用getValues函数。
success : function(response) {
if (response == true){
getValues(response);
}
}