jquery – 外部django重定向与POST参数

前端之家收集整理的这篇文章主要介绍了jquery – 外部django重定向与POST参数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图在Django视图中创建一个重定向到一个外部URL,一些get参数附加到请求。在做了一些环顾四周的尝试后,似乎已经打了一个路障。

所以我的看法看起来像这样

def view(request):
    data = get.data(request)
    if something in data:
        return HttpResponseRedirect('example.com')

这是我能够得到的。我知道你在请求url可以指定一些get参数,如下所示:

...
return HttpResponseRedirect('example.com?name=smith&color=brown')

然而,由于某些数据是敏感的,我不希望它最终在url。因为它是一个外部url,我不能使用接受视图参数的redirect()快捷方式。所以祈祷告诉你,如何完成这样的任务?

编辑

在做了一些更多的环顾之后,并且在IRC中聊了一下,似乎我应该做的是把get参数远离用户,包含支付信息,就是将它们作为post发送。我被告知你应该能够使用一些JS,也可能是jQuery。问题仍然存在,但现在仍然有点复杂。在javascript的帮助下,如何在django中创建帖子重定向

第二编辑

好像我已经被误解了。 Thanx用于清除重定向协议DR。看来我一直在走错路,试图使用重定向解决这个问题。

解决方法

我建议采用以下方法。在您的Django视图/模板返回表单到浏览器中,您要作为隐藏表单元素发布的所有参数。一旦表单加载,JavaScript将提交(POST)表单到任何你想要的地方。

视图:

from django.shortcuts import render_to_response

def view(request):
    return render_to_response('test.html',{ 'foo': 123,'bar': 456 })

模板:

<html>
<head>
    <title>test</title>
     <script type="text/javascript">
     function load()
     {
          window.document.test.submit();
          return;
     }
     </script>
</head>
<body onload="load()">
<form name="test" method="post" action="http://www.example.com">
    <input type="hidden" name="foo" value={{ foo }} />
    <input type="hidden" name="bar" value={{ bar }} />
</form>
</body>
</html>

猜你在找的jQuery相关文章