我想确定我收到的数据来自特定页面(用于导航游戏)。
我更喜欢使用 RoR 的解决方案,但如果我们可以使用 JS 来解决,那没关系 =)
在您的控制器中,您可以访问代表服务器收到的实际请求的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 以便“安静地”检查请求,而不是在每个控制器的操作中。