无法解析并返回jQuery字符串到jQuery变量
问题描述:
var data
是我的jQuery变量,我想添加jsonData.image_name
字符串文本到它。但通过时请继续说undefined
。无法解析并返回jQuery字符串到jQuery变量
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;
}
答
你不能从异步调用中返回数据,你应该在成功回调函数中进行操作。由于数据到达时会调用回调函数,但在此之前您将返回数据,因此您得到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)
+1
Thax你这么多的伴侣,它的工作。 –
为什么你将'contentType'设置为false? –