php - 从 ssl 到非 ssl 服务器的 Ajax Post 请求
问题描述
因此,我编写了一些代码来执行对远程服务器的 ajax 发布请求并执行 ssh2 命令。发送请求的服务器具有有效的 ssl 证书,远程服务器没有域(只有 ip)或 ssl。响应总是被阻止并返回代码 500。有没有办法绕过这个?
function executeSSH($commandLines) {
global $sshsshhost, $sshsshuser, $sshsshpass;
$connection = ssh2_connect($sshsshhost, 22);
ssh2_auth_password($connection, $sshsshuser, $sshsshpass);
for($i = 0; $i < count($commandLines); $i++) {
ssh2_exec($connection, $commandLines[$i]);
}
ssh2_disconnect($connection);
}
if (isset($_POST['startBot'])) {
$qport = $_POST['port'];
executeSSH(['cd /home/botsv2/bot' . $qport . '/ && screen -d -m -S bot' . $qport . ' mono /home/botsv2/bot' . $qport . '/TS3AudioBot.exe']);
}
$('#startBot').click(function (e) {
e.preventDefault();
$("#startBot,#stopBot,#restartBot,#deleteBot,#saveChanges").prop('disabled', true);
$.ajax({
type: "POST",
crossDomain: true, // Also tried crossDomain = true
dataType: "text",
url: 'currentSite.php?uid=' + <?php echo $botID; ?>,
beforeSend: function(request) {
// Already tried with headers, but doesn't work
request.setRequestHeader("Access-Control-Allow-Origin", "*");
request.setRequestHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS");
request.setRequestHeader("Access-Control-Max-Age", "1000");
request.setRequestHeader("Access-Control-Allow-Headers", "Content-Type");
},
data: {
startBot: "true",
port: <?php echo $qport; ?>
},
success: function () {
$("#stopBot,#restartBot,#deleteBot,#saveChanges").prop('disabled', false);
},
error: function(xhr, status, error) {
alert(xhr.responseText);
}
});
});
解决方案
推荐阅读
- asp.net - 防止在按钮单击时刷新页面
- wordpress - 标题计数器功能不适用于 WordPress,错误 500
- r - 将 R Shiny ggplot 与背景图像对齐
- android - 如何播放本地视频文件
- laravel - 我们如何在laravel中获得学校的最后一个ID?
- alexa - 如何从 alexa 语音资料或亚马逊帐户获取联系电话以开发 alexa 技能?
- java - Java 中的 ActionPerformed 方法
- php - 在 PHP7 中运行与 php 5.3 一起使用有什么问题?
- jquery - 使用 Id 在 Datalist 中设置选定值
- selenium-webdriver - 使用 TestNG (Java) 自定义范围报告