我需要PHP将参数从一个域提交到另一个域。 JavaScript不是我的选择。我现在正尝试在PHP中使用CURL,但在绕过跨域方面未成功。

从domain_A,我有一个页面,其中包含以下带有CURL脚本的PHP:


if (_iscurl()){
    echo "<p>CURL is enabled</p>";
    $url = "http://domain_B/process.php?id=123&amt=100&jsonp=?";

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT,10);
    curl_setopt($ch, CURLOPT_USERAGENT , "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)");
    curl_setopt($ch, CURLOPT_URL, $url );
    $return = curl_exec($ch);
    curl_close($ch);

    echo "<p>Finished operations</p>";
}
else{
    echo "CURL is disabled";
}
?>


我没有得到任何结果,所以我假设P​​HP CURL脚本不成功。有任何解决办法吗?

谢谢

最佳答案

好吧,有点晚了。但是,为可能面临类似问题的更多读者添加此答案。当我们将php curl请求从通过HTTP托管的域发送到通过https托管的域(通过SSL的HTTP)发送php curl请求时,有时会出现此问题。

在执行curl之前,只需添加以下代码段即可。

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);

07-28 02:56
查看更多