我使用以下代码使用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);
谢谢
答案 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)