我使用以下代码重定向到PHP中的页面。我需要设置自定义HTTP标头以与重定向一起传递。
header("Location: http://...");
我如何存档?
答案 0 :(得分:26)
我害怕,所有答案都是错误的,误导性的!
无论您使用何种语言或框架,都无法重定向到设置了自定义标头的网页。换句话说,无法触发HTTP重定向并导致客户端(浏览器)添加自定义标头。
您可能认为使用多个header()
调用应该可以正常工作。但事实并非如此。您正在为响应设置自定义标头,指示浏览器重定向,而不是重定向。
网站指示浏览器使用自定义标头发出HTTP请求的唯一方法是使用Javascript和XMLHttpRequest
对象。它需要在目标服务器上实现CORS才能允许这样的ajax请求。
请注意,页面无法设置HTTP请求标头,除非它使用XMLHttpRequest
发出异步请求。这意味着您无法在客户端使用自定义标头进行此类重定向。
这不是网络的运作方式。
答案 1 :(得分:1)
只需在此之后或之前添加其他header()
次来电。
header("Location: http://...");
header("Content-Type: text/plain");
答案 2 :(得分:1)
多个header
Docs来电:
header("Location: ....");
header("Header2: ....");
header("Header3: ....");
...