redirect_to with HTTP header

sam*_*tte 10 ruby redirect ruby-on-rails

不确定这是否可行或有意义,但我在设置HTTP标头字段后尝试进行重定向.就像是:

request.headers['Accept'] = 'application/json'
redirect_to url
Run Code Online (Sandbox Code Playgroud)

显然这不起作用,request当前请求也不起作用,而不是重定向.有没有办法调用redirect_to自定义HTTP标头?

sep*_*ehr 6

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

正如您自己提到的,您正在为指示浏览器重定向的响应设置自定义标头,而不是为重定向本身设置自定义标头。

站点指示浏览器发出带有自定义标头的 HTTP 请求的唯一方法是使用 Javascript 和对象XMLHttpRequest


Joh*_*ter 0

你不能直接做到这一点,但有一种间接的方法可以做到这一点

重定向到your_url,flash:{accept_header:'application / json'}

然后检查目标url中的flash[:accept_header]。

这不是特别优雅,但很有效。它类似于使用特殊的 url 参数 - your_url(accept_header: json) - 但它不会被用户/书签/等看到。