0

因此,我将数据发布到另一个系统,并希望检索系统响应的“重定向 URL”,并在 2 秒后重定向用户,但我得到:

在此服务器上找不到请求的 URL /somescript.aspx。

知道我做错了什么吗?或者还有其他什么在起作用?

<?php 
$strURL = 'http://someplace.com/somescript.aspx'; 
$fields_string = implode('&', (array)$_SESSION['apply']);

$resURL = curl_init(); 
curl_setopt($resURL, CURLOPT_URL, $strURL); 
curl_setopt($resURL, CURLOPT_POST, true);
curl_setopt($resURL, CURLOPT_POSTFIELDS, $fields_string);
curl_setopt($resURL, CURLOPT_HEADER, TRUE);
curl_setopt($resURL, CURLOPT_FOLLOWLOCATION, FALSE);
$response = curl_exec($resURL); 
$RedirectLocation = curl_getinfo($resURL, CURLINFO_EFFECTIVE_URL);

unset($_SESSION['apply']); ?>
<script type="text/javascript">
$(function() {
    setTimeout(function() {
        window.location.href = "<?php echo $RedirectLocation; ?>";
    }, 2000)
});
</script>
4

1 回答 1

0

因此,您希望检索 301/302 重定向目标,但实际上并未遵循它?设置为 true,并从响应中CURLOPT_RETURNTRANSFER解析出标头。Location:

要了解我的意思,请将您的代码更改为:

curl_setopt($resURL,CURLOPT_RETURNTRANSFER);
$response = curl_exec($resURL); 
echo $repsonse

如果您不将 curl 设置为跟随重定向, IIRCCURLINFO_EFFECTIVE_URL不会改变。

于 2013-06-27T22:56:08.053 回答