我正在使用Laravel 5.0并尝试使用自定义标头重定向到网址。但不知何故,我没有在重定向页面中获取标头值,或者我们可以说在重定向时没有发送标头值。
我正在使用此代码:
return redirect('http://www.anydomain.com')
->header('customvalue1', $customvalue1)
->header('customvalue2', $customvalue2);
如果我做错了,请告诉我。
答案 0 :(得分:10)
我害怕,另一个答案是完全错误和误导。
无论您使用何种语言或框架,都无法重定向到设置了自定义标头的网页。换句话说,无法触发HTTP重定向并导致客户端(浏览器)添加自定义标头。
您可能认为此代码应该可以正常工作:
return redirect('http://www.anydomain.com')
->header('customvalue1', $customvalue1)
->header('customvalue2', $customvalue2);
但它不会。您正在为响应设置自定义标头,指示浏览器重定向,而不是重定向。
网站指示浏览器使用自定义标头发出HTTP请求的唯一方法是使用Javascript和XMLHttpRequest
对象。它需要在目标服务器上实现CORS才能允许这样的ajax请求。
请注意,页面无法设置HTTP请求标头,除非它使用XMLHttpRequest
发出异步请求。这意味着您无法在客户端使用自定义标头进行此类重定向。
这不是网络的运作方式。