ajax 响应中的函数结果未定义
Function result undefined in ajax response
对大家很好,原来是我jqueryajax有问题。我需要你给我一个 return 值,但我得到的结果是不确定的。
我读到这是因为 ajax 不是异步的,但引起我注意的是在控制台中它正确地向我显示了结果。
function saveImageAjax(imagen){
var tmp;
$.ajax({
url: "saveimg.php",
type: "post",
data: {'image': imagen},
success: function (data) {
if(data!=undefined){
tmp = data;
console.log(tmp);
}
}
});
return tmp;
}
var response=saveImageAjax('example.com/image.png');
我一直在研究,我在网上发现的东西已经很多年了……当放入 ajax 时调用 async: false;一切的结果都是正确的,但我读到这种形式是不正确的,因为它会损害用户体验。我该如何解决这个问题?看看有没有人能给我解释一下是怎么回事。
谢谢!!
您需要使用回调:-
function saveImageAjax(imagen, callback) {
$.ajax({
url: "saveimg.php",
type: "post",
data: {
'image': imagen
},
success: function(data) {
if (data != undefined) {
console.log(data);
callback(data);
}
}
});
}
saveImageAjax('example.com/image.png', function(data) {
console.log(data);
});
那么你的响应变量将是回调函数中的data
。
对大家很好,原来是我jqueryajax有问题。我需要你给我一个 return 值,但我得到的结果是不确定的。
我读到这是因为 ajax 不是异步的,但引起我注意的是在控制台中它正确地向我显示了结果。
function saveImageAjax(imagen){
var tmp;
$.ajax({
url: "saveimg.php",
type: "post",
data: {'image': imagen},
success: function (data) {
if(data!=undefined){
tmp = data;
console.log(tmp);
}
}
});
return tmp;
}
var response=saveImageAjax('example.com/image.png');
我一直在研究,我在网上发现的东西已经很多年了……当放入 ajax 时调用 async: false;一切的结果都是正确的,但我读到这种形式是不正确的,因为它会损害用户体验。我该如何解决这个问题?看看有没有人能给我解释一下是怎么回事。
谢谢!!
您需要使用回调:-
function saveImageAjax(imagen, callback) {
$.ajax({
url: "saveimg.php",
type: "post",
data: {
'image': imagen
},
success: function(data) {
if (data != undefined) {
console.log(data);
callback(data);
}
}
});
}
saveImageAjax('example.com/image.png', function(data) {
console.log(data);
});
那么你的响应变量将是回调函数中的data
。