【问题标题】:Should POST request be sent to the same path or the next page path?POST 请求应该发送到同一路径还是下一页路径?
【发布时间】:2019-05-17 13:13:09
【问题描述】:

假设我们正在设计一个需要许多步骤来获取用户输入的网站。用户将使用POST 提交数据并使用GET 获取表单html 页面。用户在提交表单时,应该提交到同一个路由还是下一个路由?

假设 当前页面表单:/golf/member/
下一页表单:/golf/arena/

方法1(发布到同一页面):
- POST/golf/member/
- 被重定向到/golf/arena/

方法2(发布到下一页):
- POST/golf/arena/
- 被重定向到/golf/arena/

【问题讨论】:

    标签: http express networking routing


    【解决方案1】:

    更简单的解决方案:

    这是一个有趣的问题,有很多方法可以解决。我的第一直觉是尝试将用户所看到的内容与您的服务需求断开连接。我猜你只是使用 HTML 表单来发布帖子,可能值得做一个 ajax 请求,然后用客户端(浏览器端)代码重定向用户。这样你就可以发布到/golf/member,API 可以只返回一个201 Created,你的客户端代码可以将它们移动到下一步,可能是/golf/arena,它可以再次执行相同的操作。

    更高级的解决方案:

    如果这是一个包含大量不同领域的大功能,我什至会考虑更进一步。您可以获得服务器端代码来为用户提供整个“流程”。比如……

    您可以有一个类似于POST /feature/start 的端点,该端点可能会返回一些 json,例如:

    {
        "title": "Form page 1",
        "form": {
            "title": "Form title",
            "fields": [
                { "title": "first name", "type": "input" },
                { "title": "surname", "type": "input" }
            ],
            "actions": [
                { "label": "Next", "type": "button", "method": "POST", "url": "/feature/next"
            ]
        }
    }
    

    然后每个步骤都可以返回此标准 JSON 结构的新版本,然后您可以在客户端解释此 JSON 结构并使用它在每个步骤中显示您需要的表单。

    以上只是一个示例,URL 可以更好地命名,但概念意味着您正在从服务器端为数据收集提供动力,并且您只是使用前端来构建 HTML,然后收集值并将它们发送到后端服务。这对于像注册护照或其他东西这样的大型系统来说非常方便。那么你的前端就很笨了,如果你需要添加或删除步骤/字段,你只需要更改服务器端代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-19
      • 2011-11-25
      • 1970-01-01
      • 2015-11-13
      • 1970-01-01
      • 2015-08-28
      • 2017-10-21
      • 1970-01-01
      相关资源
      最近更新 更多