0
我有我使用PHP中使用了shell_exec來執行,當有一個Ajax調用我執行這個文件PowerShell腳本。 (我使用的是codeigniter 2環境)PHP - 殼牌Exec的 - PowerShell和阿賈克斯
我用Ajax調用它,因爲它需要大約45秒來執行ps文件,所以我想我會通過Ajax做到這一點,所以我可以給用戶一個消息說正在加載。
我的Ajax功能如下:
<script>
$(document).ready(function() {
$.fn.colorbox({href:"#inline_content", inline:true, width:"650px", height:"235px", overlayClose: false, showClose: false});
$('#cboxClose').remove();
var csrf = $('[name="csrf_test_name"]').val();
$.ajax({
type: "POST",
url: "/index.php/ajax/addAccount",
data: {
csrf_test_name: csrf
},
cache:false,
success:
function(data){
if(data == "True"){
window.location = "/index.php/private";
}else{
$(window).colorbox.close();
alert("There was a problem creating your account.");
}
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
$('#Loading').hide();
}
});
});
</script>
的CI Ajax控制器只是抓住數據,然後向模型。
殼exec函數如下:
function createCompany($companyID, $companyName, $domain){
$psCompanyName = "t_".$companyID. "_".str_replace(" ", "", $companyName);
$psScriptPath = "c:\\inetpub\\powershellscripts\\createCompany.ps1";
$ps = shell_exec("powershell -command $psScriptPath -companyName '".$psCompanyName."' -domain '".$domain."'");
return $ps;
}
的PS1文件執行罰款。 $ PS應該包含值「真」或「假」(PS1的有寫輸出「真」或寫輸出「假」的結尾,我檢查了所有的任務都成功地執行。
當我更換回報$ PS,返回「真」或返回「假」的研製成功:部分正常工作(我還沒有從錯誤得到任何東西:其一),並且還當我運行的Ajax之外的功能,我得到。結果
請問這是因爲阿賈克斯超時