如何在重定向时不显示 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,您可能还需要对服务器端代码进行一些更改,具体取决于您用来获取数据的方法。
我有以下表单,用于重定向用户以搜索特定日期。
<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,您可能还需要对服务器端代码进行一些更改,具体取决于您用来获取数据的方法。