有时在我的代码中我会通过 URL 传递 get 参数。一种特殊情况是,如果用户未登录,但输入了需要登录的页面的 URL,则将要求他们首先登录。
在这种情况下,我可能有一个 URL,例如:www.example.com/home/#/main/
。
URL 的末尾 /#/main/
代表 Angular。但是,在 django 中,当我执行以下操作来获取上面的 next
参数时,我会这样做:
self.request.GET.get('next', self.redirect_url)
问题是,在这种情况下,next
提供了除 Angular 部分之外的所有内容,因此我得到:www.example.com/home/
。
是否还可以获取 URL 的剩余部分?
最佳答案
在将 url 添加为参数之前,您必须对其进行 urlencode。然后它将变成 %23 并且不再插入 anchor 的分隔符,仅按照 KVISH 的描述在客户端进行处理。
关于django 和 Angular url 模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25091626/