我使用以下代码重定向到PHP中的页面.我需要设置自定义HTTP标头以与重定向一起传递.
header("Location: http://...");
Run Code Online (Sandbox Code Playgroud)
我该如何存档?
sep*_*ehr 41
我担心,所有的答案都是错误的和误导性的!
无论您使用何种语言或框架,都无法重定向到设置了自定义标头的页面.换句话说,无法触发HTTP重定向并导致客户端(浏览器)添加自定义标头.
您可能认为使用多个header()调用应该可以正常工作.但事实并非如此.您正在为响应设置自定义标头,指示浏览器重定向,而不是重定向本身.
站点指示浏览器使用自定义标头发出HTTP请求的唯一方法是使用Javascript和XMLHttpRequest对象.它需要在目标服务器上实现CORS才能允许这样的ajax请求.
请注意,页面无法设置HTTP请求标头,除非它正在使用异步请求XMLHttpRequest.这意味着您无法在客户端使用自定义标头进行此类重定向.
这不是网络的运作方式.
hak*_*kre -19
这个问题需要以不同的方式回答,因为根据您寻找的答案不同:
至于您关心重定向响应(而不是重定向响应可能触发的请求)
多个header文档调用:
header("Location: ....");
header("Header2: ....");
header("Header3: ....");
...
Run Code Online (Sandbox Code Playgroud)
如果您正在查找由重定向响应触发的新请求,请参阅您的 HTTP 客户端技术文档以了解您的选项。
Location:通常,HTTP 客户端不提供任何此类选项,即,如果响应标头之一是3xx 范围内的标头和状态代码,大多数 HTTP 客户端不会将响应标头转换为请求标头。
无论如何,这没有任何意义,因为这种做法是不安全的。
特别是在交互式 HTTP 客户端(如浏览器)级别上,无需用户批准即可自动执行重定向。请参阅HTTP,比较Fetch API。
进一步阅读:https://ec.haxx.se/http/http-redirects
| 归档时间: |
|
| 查看次数: |
10114 次 |
| 最近记录: |