Javascript 在响应生成之后,如何用另一种方法从ajax请求中获取响应?

Javascript 在响应生成之后,如何用另一种方法从ajax请求中获取响应?,javascript,ajax,Javascript,Ajax,我希望从发送请求的方法生成响应,我需要在另一个方法中生成响应。请参考下面的代码以进一步参考 function foodLog(){ var data={ servings : $('#demo_vertical').val(), calories : $('#calories').text(), carbs : $('#carbs').text(), }; $.ajax({

我希望从发送请求的方法生成响应,我需要在另一个方法中生成响应。请参考下面的代码以进一步参考

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)
  }

也许这是你想要的

success : function(response) {  
                 if (response == true){  
                     window.location = "/fitbase/foodlog/create/";   
                     getValues(response);  
                }  

         }

或者以这种方式使用变量

var foodLogResponse='';
函数foodLog(){
变量数据={
服务:$('demo_vertical').val(),
卡路里:$(“#卡路里”).text(),
碳水化合物:$(“#碳水化合物”).text(),
};
$.ajax({
类型:“POST”,
contentType:“应用程序/json;字符集=utf-8”,
url:“/fitbase/foodlog/create”,
数据类型:“json”,
数据:JSON.stringify(数据),
成功:功能(响应){
foodLogResponse=响应;
},
错误:函数(e){
警报(“目标”+e);
}  
});  

};您可以使用回调函数有效地执行此操作

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”时

注意:在调用此函数之前,必须确保已加载函数回调。你可能不得不使用

$(document).ready(function(){
    foodLog(callback);
});

我在success hadler中看到您正在重定向到另一个URL。这将导致响应丢失,因为您正在移动到其他页面。另外,如果你想在任何其他函数中使用响应,你可以考虑声明一个全局变量并将响应存储在上面。@ Vijeth谢谢你的回应,我已经编辑了我的问题,现在我不想重定向到不同的页面。你能给出一些示例代码,比如如何捕捉那个响应吗?我按照你的建议使用了回调函数,但在回调(响应)行中出现了未定义的错误。我测试了这个,对我来说效果很好。什么时候调用函数“foodlog”?你会在页面加载之前调用它吗?
foodLog(callback);
$(document).ready(function(){
    foodLog(callback);
});