【问题标题】:Redirect to external url with parameters in django使用 django 中的参数重定向到外部 url
【发布时间】:2015-01-27 07:29:28
【问题描述】:

我希望当用户在我的视图中做某事时,我将他重定向到另一个网站,并使用一些参数作为 POST 方法,就像你提交表单时一样。 我认为它可能是这样的:

return HttpResponseRedirect("url","parameters")

我该怎么做?

【问题讨论】:

    标签: python django redirect post httpresponse


    【解决方案1】:

    您不能使用POST 方法进行重定向。唯一的解决方案是显示带有表单的中间 html 并在 window.load 事件上提交此表单:

    return render(request, 'my_form.html', {'param1': 'Parameter 1',
                                            'param2': 'Parameter 2'})
    

    my_form.html 看起来像:

    <html>
        <body onload="document.my_form.submit()">
            <form action="http://external_url" name="my_form" method="POST">
                <input type="hidden" name="param1" value="{{ param1 }}" />
                <input type="hidden" name="param2" value="{{ param2 }}" />
            </form>
        </body>
    </html>
    

    【讨论】:

    • 谢谢你,这就是我想要的
    • 另一个问题,我需要用这个表单发送 XML 日期,我该怎么做?
    • 只需将此数据作为param1 值传递给模板。 AFAIK 现代浏览器支持隐藏输入中的多行值,但为了兼容性,您必须转义 \n 和 \r 符号。或者使用 &lt;textarea&gt; 和 display: none css 属性。
    • 如果服务器检查类型,我认为该值不具有 XML 数据类型。对吗?
    • XML 只是一个字符串。我对您的服务器以及它如何验证数据一无所知。
    猜你喜欢
    • 2021-07-23
    • 2016-03-27
    • 1970-01-01
    • 1970-01-01
    • 2011-01-13
    • 2019-05-02
    • 1970-01-01
    • 2011-12-01
    • 1970-01-01
    相关资源
    最近更新 更多