【问题标题】:Laravel: How to set & fetch custom header while redirecting to get method route urlLaravel:如何在重定向以获取方法路由 url 时设置和获取自定义标头
【发布时间】:2017-11-06 17:18:45
【问题描述】:

我正在使用 Laravel 5.3 并尝试重定向到带有自定义标头的 url。但是有些我没有在重定向页面中获取标题值,或者我们可以说在重定向时没有发送标题值。

我正在使用此代码:

return redirect()->route('frontend.seller.signup')->header('referal_code', $referal_code);

为了获取标题值,我使用下面的代码,但我没有收到标题值

$referal_code = Request::header('referal_code');

如果我做错了什么,请告诉我。

【问题讨论】:

  • 当你重定向到另一个页面时,$request 对象的值被新值替换。为了传递 $referalCode 你需要把它放在 Session 中。
  • 还有其他解决办法吗?
  • 你可以像Session::put('referalCode', $referalCode)这样输入会话变量。获取 thorugh if(Session::has('referalCode')){$referalCode = Session::get('referalCode')}。试试看。

标签: php laravel laravel-5.2 laravel-5.3


【解决方案1】:

当您为响应设置标头时(即使重定向也是响应),标头会发送到客户端的浏览器。

浏览器将处理响应并将页面重定向到新 URL 并向服务器发出新请求,因此您可以发现,您之前的自定义标头在新请求中将不可用。

您可以使用 with() 函数将任何 var 发送到目标 url:

redirect()->route('frontend.seller.signup')->with('referral_code', $referral_code);

并使用会话获取目标函数中的变量:

$referral_code = session('referral_code');

顺便说一句,您可以在每个请求中获取引荐来源网址,而无需在引荐来源网址中设置任何参数,如果这对您的情况有帮助:

$referer = $request->headers->get('referer');

【讨论】:

    猜你喜欢
    • 2013-07-19
    • 2020-11-02
    • 1970-01-01
    • 2017-03-27
    • 2019-10-05
    • 1970-01-01
    • 1970-01-01
    • 2020-03-26
    相关资源
    最近更新 更多