【问题标题】:is it ok to change data in a GET request?可以在 GET 请求中更改数据吗?
【发布时间】:2016-06-11 23:17:34
【问题描述】:

我正在添加电子邮件确认,当用户单击电子邮件激活链接时,它会发出获取请求以获取注册页面并填充注册表单。但是,我还想在此操作中将我的用户的 email_confirmed 属性更新为 true。我听说永远不会更改获取请求中的数据,但我不知道该怎么做。

【问题讨论】:

    标签: ruby-on-rails ruby http web


    【解决方案1】:

    最好不要更改 GET 请求中的数据。它没有在语言或框架级别强制执行。

    您可以做的是在发出 POST 请求的 GET 页面上显示一个确认电子邮件按钮。

    【讨论】:

      【解决方案2】:

      这是一个实用胜过迂腐的例子。确实,HTTP GET 应该是一个非修改且幂等的操作。但有时在这些情况下,GET 比 POST 或 PUT 更容易。它也很适合测试,只需将 URL 粘贴到浏览器中即可:)

      【讨论】:

        【解决方案3】:

        虽然最好不要更改 GET 请求中的数据,但在某些情况下您别无选择,这就是其中之一。

        HTML 锚点(<a> 标签)只能向您的服务器提交 GET 请求。要使用其他方法(POST、PATCH 等),您必须使用 JavaScript,但不能依赖收件人的电子邮件客户端来运行它。

        【讨论】:

          【解决方案4】:

          为 GET 服务的页面可以包含一个按钮,该按钮触发修改状态的实际 (POST) 操作。

          【讨论】:

            猜你喜欢
            • 2016-07-28
            • 1970-01-01
            • 1970-01-01
            • 2015-12-19
            • 1970-01-01
            • 2018-04-07
            • 2016-08-26
            • 1970-01-01
            • 2012-01-28
            相关资源
            最近更新 更多