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