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