调用ajax请求会导致php阻止访问
我有一个很难调试的问题。我有一个网页,它可以向我们的服务器apache/php发出几个ajax请求,非常简单。我们已经实现了一个PHP函数,它使用SHILLYEXEC来执行一个小型C++程序并读取输出。在本地测试时,我没有遇到任何问题。然而,在我们的实际服务器上,存在一个大问题 每次调用调用调用shell_exec的php函数的ajax请求时,我都会得到一个很好的响应,但之后我再也无法成功地对该php文件进行ajax调用。我已经在不同的浏览器和计算机上测试过,每次都会出现这种情况 如果我删除cookie,我可以重新连接到php文件 我已经用chrome开发者工具检查了网络连接,没有给出任何说明。我从调用shell_exec的ajax请求收到了良好的响应。但后来,它被封锁了。我收到连接失败错误-但仅在调用该函数的设备/会话上。如果我打开其他浏览器,它仍将连接 我用谷歌搜索了php会话阻塞,但我不明白这是怎么回事。这是一个简单的ajax请求,一次只发出一个请求。此外,我多次调用其他ajax请求来重现该行为,但我不能。只有在调用调用shell_exec的php函数时才会发生这种情况 如果shell_exec出了问题,我不希望得到良好的回应,但我得到了良好的回应 我知道这是模糊的,但这是一个大问题,我不知道如何调试这样的问题。关于正在发生的事情或者我如何调试它有什么想法吗 示例代码:调用ajax请求会导致php阻止访问,php,ajax,session,shell-exec,Php,Ajax,Session,Shell Exec,我有一个很难调试的问题。我有一个网页,它可以向我们的服务器apache/php发出几个ajax请求,非常简单。我们已经实现了一个PHP函数,它使用SHILLYEXEC来执行一个小型C++程序并读取输出。在本地测试时,我没有遇到任何问题。然而,在我们的实际服务器上,存在一个大问题 每次调用调用调用shell_exec的php函数的ajax请求时,我都会得到一个很好的响应,但之后我再也无法成功地对该php文件进行ajax调用。我已经在不同的浏览器和计算机上测试过,每次都会出现这种情况 如果我删除co
function applyForCreditCards() {
if (!creditCardAppForm.isValid()) return;
$.ajax({
type: 'POST',
url: '../troystest/MobileServices/MobileValidationService.php',
data: {
'action': 'applyForCreditCard',
'ssn' : ssn,
... more variables...
'creditCardIds' : selectedCreditCards
},
success: function(msg){
results = JSON.parse(msg);
// Do something with response
});
}
});
}
服务器端代码示例
if (!$_SESSION)
session_start();
switch($_POST['action'] {
case 'applyForCreditCard': $this->applyForCreditCards($vars...);
break;
}
applyForCreditCards($vars...) {
$output = explode("\n", shell_exec($pathToExec." ".$commandLineArgs));
echo json_encode($output);
exit();
}
真正的代码真的很长,我试图包括相关部分。C++程序很小,并将10行输出到STDU.
取决于在SeLySeExcel中运行的实际命令,在尝试再次运行之前,您可能需要先杀死进程,或者在后台运行每个进程。
在这里查看一些有助于实现此目的的类:您能发布一些代码吗?您最感兴趣的代码是什么?一些用于调用AJAX的javascript和用于给出响应的PHP脚本!我想可能是shell_exec程序失败了…进入了无限循环或其他什么。但是php服务器难道一点也不响应吗?谢谢你的回复。我会更彻底地研究这个链接。