Получение ответа сервера после загрузки файла
Всем привет.
В ходе выполнения функции вызываю функцию загрузки файла на сервер (плагин AxajFileUploader). Сервер присылает ответ. Не получается этот ответ передать в первую функцию. Сейча примерно так:
function f1(){
ajaxFileUpload(var1, var2);
var ajaxresultdata = $('input#ajaxresult').val();
}
function ajaxFileUpload(var1, var2)
{
$.ajaxFileUpload({
url:'signfileupload.php',
secureuri:false,
fileElementId:var1,
type: 'POST',
dataType: 'json',
data:{thumbrint: var2, fileelementname: var1},
success: function (data, status)
{
if(typeof(data.error) != 'undefined')
{
if(data.error != '')
{
alert(data.error);
$('input#ajaxresult').val('false');
}else{
$('input#ajaxresult').val(data.msg);
}
}
},
error: function (data, status, e)
{
alert(e);
$('input#ajaxresult').val('false');
}
}
)
return;
}
Переменная ajaxresultdata остается пустой. Результать добавляется в input только после выполнения функции f1 полностью. Как получить ответ от сервера в переменную f1? |
Oleg_Antonov,
Процесс загрузки файла на сервер асинхронный, данные ответа от сервера будут доступны только в success - колбэке. Поэтому в success вы должны вызвать ваш метод и передать данные. Примерно так:
function f1(){
ajaxFileUpload(var1, var2);
//остальной код функции переносите в отдельную функцию
}
function onDataLoaded(data)
{
//здесь остальной код
}
function ajaxFileUpload(var1, var2)
{
$.ajaxFileUpload({
...
success: function (data, status)
{
...
onDataLoaded(data);
...
}
|
| Часовой пояс GMT +3, время: 22:43. |