根据我执行bat文件的方式,我得到不同的$ return值。
当我测试一个脚本时,我使用exec($ command,$ output,$ return)来运行一个bat文件,通过命令行手动运行脚本我得到一个$ for $ return我可以看到一个值$ out按预期结果。当我通过ajax运行相同的脚本时$ return是-1而$ out是一个空白数组。
我找不到负面回报值的大量信息,但我认为说它们是错误是非常安全的 - 尽管我不知道如何从中得到更多信息。
根据我运行bat文件的方式,我得到不同的$ return值的原因是什么?
感谢您的任何建议和帮助。
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请求被下一个发送的请求中断吗?或者那可能是失败?