0

我想确定我收到的数据来自特定页面(用于导航游戏)。

我更喜欢使用 RoR 的解决方案,但如果我们可以使用 JS 来解决,那没关系 =)

4

1 回答 1

4

在您的控制器中,您可以访问代表服务器收到的实际请求的request变量(类型):ActionDispatch::Request

def index
  puts request.inspect # see in your server's console the output
  # ...
end

使用此变量,您可以访问referer,它返回最后看到的页面的路径(作为字符串),或者nil如果您来自另一个域(或空白页面)。


要检查哪个页面发送了您的表单,您可以使用:

def my_controller_action
  if request.referer.present? && request.referer.include?('/string/to/check/')
    # yay!
  else
    # well, the request is not coming from there
  end
end

您也可以before_filter在控制器中将其设置为 a 以便“安静地”检查请求,而不是在每个控制器的操作中。

于 2013-05-29T16:13:22.783 回答