我在运行Apache的Centos 6计算机上托管了一个网站。在所述网站内,我有一个HTML表单,它向一个PHP页面(在相同的Centos 6机器上运行)发出POST请求,其作用是将所述请求传递给通过curl在不同服务器上运行的Web服务。
$.ajax({
method: "POST",
url: "register.php",
data: { name: name, lastname: lastname, sex: sex, bithdate: birthdate, email: email, cellphone: cellphone, country: country }
})
.always(function( msg ) {
alert( msg );
});
PHP中间代码:
<?php
//extra line
set_time_limit(0);
$data = http_build_query($_POST);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://xxxx:8690/register/user");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//extra lines
curl_setopt($ch, CURLOPT_NOSIGNAL, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,0);
curl_setopt($ch, CURLOPT_TIMEOUT, 400); //timeout in seconds
//flags
$result = curl_exec($ch);
$curl_errno = curl_errno($ch);
$curl_error = curl_error($ch);
echo "Error: ".$curl_error." number: ".$curl_errno;
echo "Result is: ".$result;
curl_close($ch);
?>
问题是,当使用所述中间PHP页面时,请求永远不会到达Web服务。如果我直接从网站发送POST请求到网络服务的网址,它运作正常,但我不想这样做,因为我想保留网络服务的网址因安全原因私下。
任何帮助/想法都将不胜感激。