【问题标题】:Get the value of variables passed in the url获取url中传递的变量的值
【发布时间】:2015-07-30 08:32:56
【问题描述】:

您好,我正在使用 Mandrill 从我的系统发送几封电子邮件(Mandrill 旨在帮助需要发送交易电子邮件的应用程序或网站,例如密码重置、订单确认和欢迎消息。)我正在准备一个 URL 并附加它到电子邮件。当用户单击这些电子邮件中的链接时,他将被重定向到网页中的特定部分。

我附上的网址是这样的:“https://mysite/account/subs/#manage_contacts

如果用户登录到我的应用程序,他将被重定向到特定的 url,如果没有,他将被重定向到登录页面,并设置站点和目标变量以将他重定向到他单击的 url。

在登录页面这是网址:

https://mysite/authenticate/?site=xyz&target=/account/subs/#manage_contacts

但在登录后,用户被重定向到“mysite/account/subs/”。 省略“#manage_contacts”。如何在目标中获取整个 url。 我检查了目标的值,它只有 mysite/account/subs/

成功登录后负责重定向的部分视图:

  
        site = request.GET.get('site', '')
        logger.debug('site:' + str(site))
        target = request.GET.get('target', '')
        logger.debug('target:' + str(target))
        if site and target:
            redirect_url = target
        else:
            redirect_url = '/authenticate/'
        logger.debug('redirect_url:' + str(redirect_url))
        return HttpResponseRedirect(redirect_url)
        

【问题讨论】:

    标签: python django url post get


    【解决方案1】:

    # 是浏览器显示更友好的标记。

    不是http请求的一部分,所以无法通过#manage_contacts获取

    target = request.GET.get('target', '')
    

    详细信息:

    what-is-the-symbol-in-the-url

    Fragment_identifier

    【讨论】:

      【解决方案2】:

      你需要转义#。浏览器将其视为当前 URL 的片段,并且不会将其发送到后端。

      将目标 URL 改为 https://mysite/account/subs/%23manage_contacts

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-05-27
        • 1970-01-01
        • 2014-07-20
        • 2020-07-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多