Laravel:如何在重定向到任何URL时设置自定义标头

时间:2016-04-05 13:00:30

标签: php laravel header

我正在使用Laravel 5.0并尝试使用自定义标头重定向到网址。但不知何故,我没有在重定向页面中获取标头值,或者我们可以说在重定向时没有发送标头值。

我正在使用此代码:

return redirect('http://www.anydomain.com')
            ->header('customvalue1', $customvalue1)
            ->header('customvalue2', $customvalue2);

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

1 个答案:

答案 0 :(得分:10)

我害怕,另一个答案是完全错误和误导。

无论您使用何种语言或框架,都无法重定向到设置了自定义标头的网页。换句话说,无法触发HTTP重定向并导致客户端(浏览器)添加自定义标头。

您可能认为此代码应该可以正常工作:

return redirect('http://www.anydomain.com')
     ->header('customvalue1', $customvalue1)
     ->header('customvalue2', $customvalue2);

但它不会。您正在为响应设置自定义标头,指示浏览器重定向,而不是重定向。

网站指示浏览器使用自定义标头发出HTTP请求的唯一方法是使用Javascript和XMLHttpRequest对象。它需要在目标服务器上实现CORS才能允许这样的ajax请求。

请注意,页面无法设置HTTP请求标头,除非它使用XMLHttpRequest发出异步请求。这意味着您无法在客户端使用自定义标头进行此类重定向。

这不是网络的运作方式。