重定向到页面并发送自定义HTTP标头

时间:2011-09-28 12:48:54

标签: php http redirect

我使用以下代码重定向到PHP中的页面。我需要设置自定义HTTP标头以与重定向一起传递。

header("Location: http://...");

我如何存档?

3 个答案:

答案 0 :(得分:26)

我害怕,所有答案都是错误的,误导性的!

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

您可能认为使用多个header()调用应该可以正常工作。但事实并非如此。您正在为响应设置自定义标头,指示浏览器重定向,而不是重定向。

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

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

这不是网络的运作方式。

答案 1 :(得分:1)

只需在此之后或之前添加其他header()次来电。

header("Location: http://...");
header("Content-Type: text/plain");

答案 2 :(得分:1)

多个headerDocs来电:

header("Location: ....");
header("Header2: ....");
header("Header3: ....");
...