所以我将数据发布到另一个系统并希望检索系统响应的“重定向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>
答案 0 :(得分:0)
所以你想要检索301/302重定向目标,但实际上并没有遵循它?将CURLOPT_RETURNTRANSFER
设置为true,并从响应中解析Location:
标题。
要了解我的意思,请将代码更改为:
curl_setopt($resURL,CURLOPT_RETURNTRANSFER);
$response = curl_exec($resURL);
echo $repsonse
如果您没有将curl设置为遵循重定向,则IIRC CURLINFO_EFFECTIVE_URL
将不会更改。