如何在重定向上不显示URI变量?

时间:2016-07-08 12:36:15

标签: javascript jquery redirect csrf

我有以下表格,用于重定向用户搜索特定日期。

   <form action="/datesearch/" method="get" id="goto_date_form" style="display:none;">
        <input name="dt" type="text" />
        <input type="hidden" name="csrfmiddlewaretoken" value="[my csrf token value]">
    </form>

使用$('#goto_date_form').submit();调用此表单时,它会重定向页面,但它会显示dt的值和csrfmiddlewaretoken的值作为URI变量。

即。在搜索2016-07-06时,它会重定向到

`http://localhost:8000/datesearch/?dt=2016-07-06&csrfmiddlewaretoken=[my csrf token value]`

如何让它停止显示csrf令牌?

3 个答案:

答案 0 :(得分:2)

只需将method="get"更改为method="post"(也可以将后端更改为

答案 1 :(得分:2)

在表单中使用GET时,表单中的所有数据都放在URI中。如果您将表单更改为使用POST,则数据将放在请求正文中 - 在URI中不可见(但如果用户决定查看请求详细信息,则仍然可供用户看到)。

注意如果从GET更改为POST,则可能必须在服务器端代码中进行一些更改,具体取决于您用于获取数据的方法。

答案 2 :(得分:1)

在表单标记中使用method="post"以防止数据在URL中传递