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

How to not display URI variable on redirect?

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

   <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 令牌?

在表单标签中使用 method="post" 以防止数据传入 url

只需将 method="get" 更改为 method="post"(后端也一样)

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

注意如果您从 GET 更改为 POST,您可能还需要对服务器端代码进行一些更改,具体取决于您用来获取数据的方法。