如何使用PHP cURL更改地址栏位置以获取POST请求

时间:2012-11-26 13:46:22

标签: php curl

我使用以下代码使用cURL发送POST请求。这很完美。我唯一的问题是地址栏中的位置不会自行更新。

发送此请求的网页是www.somedomain.com/merge.php,但在帖子执行后,地址栏仍显示www.somedomain.com/merge.php而不是www.somedomain.com/preview .PHP

我尝试过使用curl_setopt($ c,CURLOPT_FOLLOWLOCATION,1);没有运气。

$c = curl_init();
curl_setopt($c, CURLOPT_URL, 'www.somedomain.com/preview.php');
curl_setopt($c, CURLOPT_POST, true);
curl_setopt($c, CURLOPT_POSTFIELDS, 'landscape=true');
curl_exec ($c);
curl_close ($c); 

谢谢

5 个答案:

答案 0 :(得分:2)

你误解了发生的事情。涉及三方:

client (browser)  <---->   your server  <---->   somedomain.com

客户端向您的服务器发送HTTP请求,您的服务器向somedomain.com发送HTTP请求。您的服务器将收到响应,客户端与它无关。如果要重定向客户端,则需要从服务器向客户端发出适当的HTTP响应,告知其在其他位置重定向。因为客户端正在与您的服务器通信,而不是somedomain.com。无论您的服务器与somedomain.com之间发生什么,都不是它的业务。

如果您希望客户端直接向somedomain.com发送POST请求,您需要创建一个POST到somedomain.com的表单或使用Javascript触发等效的表单。

答案 1 :(得分:1)

你不能使用cURL这样做,因为REQUEST没有在浏览器中启动,而是来自PHP。

如果您希望浏览器更新网址,那么您应该查看当前页面中发布的表单。

答案 2 :(得分:1)

当您使用curl发出请求时,您将以编程方式访问该URL,这只发生在服务器端。

这不会更改地址栏中的网址。

如果您想重定向到新网址,请使用

header('redirect', 'http://newurl.com');

答案 3 :(得分:0)

这是不可能的。 您使用cURL并从服务器发出请求。但您可以在客户端更改URL。

您可以使用

Header("Location:http://www.somedomain.com/preview.php") 在curl_close($ c);

之后

但我认为这不是正确的解决方案。

答案 4 :(得分:0)

这是不可能的。

这是PHP Post & Redirect with cURL Same As HTML Form

的同一问题

虽然该问题已经结束,但您可以阅读有效答案以帮助您澄清问题。