gpt4 book ai didi

javascript - 完全禁用 Guzzle 的重定向

转载 作者:行者123 更新时间:2023-12-03 08:17:02 25 4
gpt4 key购买 nike

Guzzle6 有一个漂亮的选项:allow_redirects。如果将此选项设置为 false 值,如果 302Headers 等响应代码具有 Location 参数,Guzzle 会阻止重定向。

但是有一个问题。如果重定向由客户端发送 – Guzzle 不会注意到这一点。例如:

我们有一些重定向到页面 http://redirected.com/ 的 URL http://example.com/。在 Guzzle 帮助下发送请求:

$oClient->request('POST', 'http://redirected.com/', [
'form_params' => $aFormData,
'cookies' => (new CookieJar($aPrepareCookie)),
'debug' => true,
'allow_redirects' => false
]);

假设redirect.comindex.php,如下所示:

<?php
header('Location: http://www.example.com/');
?>

在这种情况下,Guzzle 将阻止重定向。

现在,让我们看看这个重定向示例:

<?php
echo '<script>window.location = "http://www.example.com/";</script>';
?>

这里我们遇到了一个问题,因为这是客户端重定向,他不能影响 Headers,因此 Guzzle 无法跟踪 HTTP 状态代码或位置值。

那么,我该如何解决这个问题并找到解决方案?

感谢您的帮助!

最佳答案

正如之前的发帖者所说,Guzzle 不会执行 javascript。

使用 Guzzle Middleware 可以轻松解决您的问题.

在中间件内:

  • 收到回复
  • 解析 window.location="someurl"的正文
  • 执行“someurl”请求
  • 修改“someurl”响应的 header 以包含它是重定向的事实。
  • 返回响应。

关于javascript - 完全禁用 Guzzle 的重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33889405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com