繁体   English   中英

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

[英]How to change the address bar location using PHP cURL for a POST request

我正在使用以下代码使用 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); 

谢谢

你误解了正在发生的事情。 涉及三个方面:

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

客户端向您的服务器发送 HTTP 请求,您的服务器向 somedomain.com 发送 HTTP 请求。 您的服务器将收到响应,客户端与它无关。 如果您想重定向客户端,您需要从您的服务器向客户端发出适当的 HTTP 响应,告诉它重定向到其他地方。 因为客户端正在与您的服务器交谈,而不是 somedomain.com。 无论您的服务器和 somedomain.com 之间发生了什么,都与它无关。

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

您不能使用 cURL 来执行此操作,因为 REQUEST 不是在浏览器中启动的,而是来自 PHP。

如果您希望浏览器更新 URL,那么您应该查看从当前页面内发布 FORM。

当您使用 curl 发出请求时,您正在以编程方式访问 url,这仅发生在服务器端。

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

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

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

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

您可以使用

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

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

这不可能。

这是PHP Post & Redirect with cURL Same As HTML Form 中的相同问题

尽管该问题已关闭,但您可以阅读有效答案以帮助您澄清问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM