0

我的应用程序在rails中。如何清除url中的查询字符串?重定向是唯一的方法吗?

我有一个获取浏览器请求(当用户点击另一个网站中的链接时)到我的应用程序使用重要的查询字符串参数,如 http://example.com?logintoken=hjhzjkdhz

但我觉得我应该在我的控制器中使用这个logintoken,但不想在渲染页面之后在浏览器url栏上向用户显示。所以总之我最终只想在浏览器的url栏中显示http://example.com

有没有办法清除查询字符串?

我看到最后重定向到http://example.com是实现此目的的一种方法。 还有别的办法吗?

回答

0

你不能没有重定向...那么,从技术上讲,你可以,如果你操纵浏览器状态后渲染(历史推和弹出)。

在铁轨边,你将需要重定向和你的URL参数传递到服务器变量和重定向的动作,没有参数,可以使用这些变量:

def myaction 
    if params.any? 
     session[:myaction_params]={} 
     session[:myaction_params]=params 
     redirect_to myaction_path 
    elsif session[:myaction_params] && session[:myaction_params].any? 
     # use your params like this 
     # params[:logintoken] will now be session[:myaction_params][:logintoken] 
     # apply logic here 
    else 
     # do something else if there are no params 
     # redirect_to somewhere 
    end  
end 
0

的另一种方式来做到这一点将您的请求更改为POST,并在消息中隐藏参数。

+0

它是来自其他网站的正常网址点击,因此无法进行POST ... – 2014-12-13 20:58:45

相关问题