无法解析 return ajax 字符串到 jquery 变量
Can't parse and return ajax string to jquery variable
var data
是我的 jquery 变量,我想在其中添加 jsonData.image_name
字符串文本。但在它通过时继续说 undefined
。
function SaveAndGetImageName() {
var data = "";
var formData = new FormData();
formData.append('btn_Browse', $('#btn_Browse')[0].files[0]);
$.ajax({
url: '../Gem/SaveProfilePic',
type: 'POST',
dataType: 'json',
cache: false,
async: true,
contentType: false,
processData: false,
data: formData,
success: function (jsonData) {
data = jsonData.image_name;
}
});
return data;
}
您不能 return 来自异步调用的数据,您应该在成功回调函数中进行操作。由于数据到达时会调用回调,但您在此之前正在 return 处理数据,因此您会得到 undefined
.
function SaveAndGetImageName(processImageNameCallback) {
var data = "";
var formData = new FormData();
formData.append('btn_Browse', $('#btn_Browse')[0].files[0]);
$.ajax({
url: '../Gem/SaveProfilePic',
type: 'POST',
dataType: 'json',
cache: false,
async: true,
contentType: false,
processData: false,
data: formData,
success: function (jsonData) {
data = jsonData.image_name;
processImageNameCallback(data);
}
});
return data;
}
function processImageName(imageName){
// do stuff with image name
alert(imageName);
}
SaveAndGetImageName(processImageName)
var data
是我的 jquery 变量,我想在其中添加 jsonData.image_name
字符串文本。但在它通过时继续说 undefined
。
function SaveAndGetImageName() {
var data = "";
var formData = new FormData();
formData.append('btn_Browse', $('#btn_Browse')[0].files[0]);
$.ajax({
url: '../Gem/SaveProfilePic',
type: 'POST',
dataType: 'json',
cache: false,
async: true,
contentType: false,
processData: false,
data: formData,
success: function (jsonData) {
data = jsonData.image_name;
}
});
return data;
}
您不能 return 来自异步调用的数据,您应该在成功回调函数中进行操作。由于数据到达时会调用回调,但您在此之前正在 return 处理数据,因此您会得到 undefined
.
function SaveAndGetImageName(processImageNameCallback) {
var data = "";
var formData = new FormData();
formData.append('btn_Browse', $('#btn_Browse')[0].files[0]);
$.ajax({
url: '../Gem/SaveProfilePic',
type: 'POST',
dataType: 'json',
cache: false,
async: true,
contentType: false,
processData: false,
data: formData,
success: function (jsonData) {
data = jsonData.image_name;
processImageNameCallback(data);
}
});
return data;
}
function processImageName(imageName){
// do stuff with image name
alert(imageName);
}
SaveAndGetImageName(processImageName)