如何在Rails中获取以前的URL?不是您收到请求的URL,而是之前的URL?
因为我收到了一个AJAX请求,我需要他们当前所在页面的URL(或AJAX之前的URL)。
答案 0 :(得分:81)
尝试使用HTTP_REFERER
。
在Rails中:request.referrer
或request.headers["HTTP_REFERER"]
答案 1 :(得分:16)
使用
<%= url_for(:back) %>
# if request.env["HTTP_REFERER"] is set to "http://www.example.com"
# => http://www.example.com
答案 2 :(得分:6)
在Web应用程序中,没有以前的URL。 http协议是无状态的,因此每个请求都是相互独立的。
您可以使用Javascript代码发送请求,然后使用请求发送当前网址。
答案 3 :(得分:3)
刚刚遇到这个问题,它与我目前正在做的事情有关。
我之前使用ajax向导样式应用程序时使用的一个简单解决方案是存储两个包含先前和当前请求的会话变量(包含所有参数)。 我只是将这两行添加到我的应用程序控制器
session[:previous_request_url] = session[:current_request_url]
session[:current_request_url] = request.url
答案 4 :(得分:2)
http://railscasts.com/episodes/246-ajax-history-state - &gt;非常适合ajax
http://ethilien.net/archives/better-redirects-in-rails/ - &gt;您可以根据需要在会话中输入任意数量的URL。