我想在不使用cURL的情况下将数据从一个页面转发到另一个页面,这是否可行?
目前我已经尝试过:
header('HTTP/1.1 307 Temporary Redirect');
header('Location: new-location.php');
这个方法可行,但会弹出愚蠢的弹窗,还有其他方法吗?
我尝试使用curl,但没有任何反应,不确定我的服务器是否启用了它!
我想在不使用cURL的情况下将数据从一个页面转发到另一个页面,这是否可行?
目前我已经尝试过:
header('HTTP/1.1 307 Temporary Redirect');
header('Location: new-location.php');
这个方法可行,但会弹出愚蠢的弹窗,还有其他方法吗?
我尝试使用curl,但没有任何反应,不确定我的服务器是否启用了它!
<!DOCTYPE html>
<html>
<body onload="document.forms[0].submit()">
<form action="new-location.php" method="post">
<?php foreach( $_POST as $key => $val ): ?>
<input type="hidden" name="<?= htmlspecialchars($key, ENT_COMPAT, 'UTF-8') ?>" value="<?= htmlspecialchars($val, ENT_COMPAT, 'UTF-8') ?>">
<?php endforeach; ?>
</form>
</body>
</html>
你可以使用以下方法将POST数据转发到另一个URL。请注意,响应被捕获在$data变量中,您可以随意处理。
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.domain.tld/urltopostto.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 100);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($_POST));
$data = curl_exec($ch);
curl_close($ch);
return $data;
并有效地包装POST调用? - Andrew Wyld如果我理解问题正确,并且您正在使用启用了mod_rewrite
的Apache服务器,您可以使用URL重写。您可以将请求方法设置为条件,并将原始URL重写为备用URL:
RewriteCond %{REQUEST_METHOD} ^POST
RewriteRule ^index.php new-location.php [L]
也许,你可以试试这种方式:
header("Status: 200");
header("Location: new-location.php");
exit;