Я получаю разные значения $ return в зависимости от того, как я выполняю bat-файл.
Когда я тестирую скрипт, который использует exec ($ command, $ output, $ return) для запуска файла bat, запустив скрипт вручную из командной строки, я получаю 0 для $ return и вижу значение в $ out как ожидается. Когда я запускаю тот же скрипт через ajax, $ return равен -1, а $ out — пустой массив.
Я не могу найти много информации для отрицательных возвращаемых значений, но я думаю, что довольно безопасно сказать, что они говорят, что это ошибка — хотя я не уверен, как получить больше информации от этого.
В чем может быть причина того, что я получаю разные значения $ return в зависимости от того, как я запускаю bat-файл?
Спасибо за любые советы и помощь.
Код AJAX — я использую ajaxTime, чтобы попытаться увидеть, сколько времени занимают запросы. Они варьируются от 550-650 до времени отклика:
var ajaxTime = new Date().getTime();
getdSize(f, ajaxTime);
function getSize(f, ajaxTime){
$.ajax({
url: "php file handling the ajax request",
type: "POST",
data: {
file : encodeURIComponent(f),
}
})
.done(function(data){
var totalTime = new Date().getTime()-ajaxTime;
console.log("Ajax Time: " + totalTime);
console.log("Data: " + data);
})
.fail(function(data){
if ( data.responseCode ){
console.log( data.responseCode );
}
console.log("Ajax failure");
});
}
PHP-код —
$file = $_POST['file'];
echo bat_getSize ($file);
[this calls bat_getSize function]
function bat_getSize($file){
exec("getSize \"$file\"",$out, $ret);
return $out[0];
}
Который называет это
Код летучей мыши —
@echo off
echo %~z1
Спасибо!
Обновить
Правильно ли я понимаю, что использование обратного вызова .done () предотвратит прерывание моего ajax-запроса следующим отправленным запросом? Или это может быть провал?
Задача ещё не решена.
Других решений пока нет …