将状态代码添加到Rails 3中的:root重定向会导致恼人的"您正被重定向"页面

Clo*_*boy 2 ruby-on-rails ruby-on-rails-3

此代码正在执行rescue_from.

这有效:

redirect_to :root, :notice => 'Mice'
Run Code Online (Sandbox Code Playgroud)

这会导致Rails 3生成"您正在被重定向"页面:

redirect_to :root, :status => 403, :notice => 'Mice'
Run Code Online (Sandbox Code Playgroud)

有类似的问题,但我没有看到最近或完全匹配这种情况.难道我做错了什么?

zet*_*tic 8

由于浏览器的行为,您将看到此页面.403告诉浏览器请求已完成且状态为"禁止".您需要发送3xx系列状态代码才能进行重定向.在redirect_to没有显式代码的情况下使用发送302.

请注意,如果您使用curl测试第二个示例,您将看到302和403状态代码的"您正在被重定向"页面.redirect_to无论如何都会将其发送回响应,但它是确定如何处理请求的浏览器.