【问题标题】:How to not display URI variable on redirect?如何在重定向时不显示 URI 变量?
【发布时间】:2016-11-11 00:51:05
【问题描述】:

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

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

【问题讨论】:

    标签: javascript jquery redirect csrf


    【解决方案1】:

    在form标签中使用method="post",防止url传入数据

    【讨论】:

      【解决方案2】:

      只需将 method="get" 更改为 method="post" (以及后端)

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-08-03
          • 1970-01-01
          • 2019-06-11
          • 1970-01-01
          相关资源
          最近更新 更多