无法解析并将ajax字符串返回到jquery变量

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

你不能从异步调用返回数据,你应该在成功回调函数中进行操作。 当数据到达时调用回调,但是在此之前返回数据,因此您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)