【问题标题】:django and angular url patternsdjango 和 angular url 模式
【发布时间】:2014-08-02 04:18:44
【问题描述】:

有时在我的代码中,我会通过 URL 传递 get 参数。一种特殊情况是,如果用户未登录,但为需要登录的页面设置了 URL,则需要先登录。

在这种情况下,我可能有一个 URL,例如:www.example.com/home/#/main/

URL /#/main/ 的结尾是 angular。但是,在 django 中,当我执行以下操作以获取上面的 next 参数时,我会这样做:

self.request.GET.get('next', self.redirect_url)

问题在于,在这种情况下,next 提供了除角度部分之外的所有内容,所以我得到:www.example.com/home/

是否也可以获取 URL 的剩余部分?

【问题讨论】:

    标签: django angularjs


    【解决方案1】:

    在将其添加为参数之前,您必须对 url 进行 urlencode。然后它将变成 %23 并且不再插入锚的分隔符,这仅按照 KVISH 的描述在客户端处理。

    【讨论】:

    • 框架处理登录时如何进行url编码?
    • 如果您依赖框架进行未经身份验证的重定向,则无法做到这一点。如果您在 get 参数中传递 URL,您必须自己使用 urlencode()。
    【解决方案2】:

    显然你不能。 Django 甚至看不到锚点,它全部在客户端(浏览器)上处理。

    How to identify an anchor in a url in Django?

    我解决这个问题的方法是我使用 jQuery 将隐藏的输入字段设置为哈希位置,可以这样获得:

    window.location.hash
    

    哈希与表单一起提交,我可以从那里获取它。

    【讨论】:

      猜你喜欢
      • 2013-03-16
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 2020-08-21
      • 2015-05-07
      • 2014-10-23
      • 2015-08-22
      • 2021-12-25
      相关资源
      最近更新 更多