之前也遇到这个问题,在不同的页面都可以登录和登出,怎样登录的时候跳转回当前的页面呢?
今天做项目又遇到这个问题,决心不能再拖下去,毕竟要解决掉。
用django的话,我上网搜了一下解决方法,搜到一篇可以用的,不管怎么说都是一个好的回答,我就照着这个实施了一遍,发现可以使用。
下面贴下这个的链接:
http://stackoverflow.com/questions/806835/django-redirect-to-previous-page-after-login
后来跟同学讨论了一下,url传参感觉不是太好,所以就寻求新的方法
首先,理一下思路:
无论怎样,我们是要记下跳转之前的页面的url的,而且是要绝对位置
Django的话,可以用 request.path, 或者如果是带有参数的url的话,是request.get_full_path();
但是后者在前端会出现语法错误,所以在前端还是要用{{request.path}}来获取
然后我们需要把这个url传到后台
这一步就见仁见智了,上述的那个教程是通过url传参,利用一个next变量在url里传到后台,但是如果不想在url传呢?
前端和后台交互,表单的POST,但是如果我们跳转到登录界面又需要GET方法,所以逻辑上会很麻烦。
另外就是如果有全局变量可以存,时刻更新全局变量就可以了,说到全局变量同学想到了session
讨论了一下,可行性很大,我们在除了Login, Logout的其他界面都在进入页面函数的时候将session[url](自己随便起名字)字段更新为当前页面的绝对位置,然后在 Login,Logout页面函数需要跳转的时候直接访问session['url']就好,
但是这样就需要设置session的过期时间为关闭浏览器时,会保险一些。