【问题标题】:When or How should we pass the params to the URL?我们应该何时或如何将参数传递给 URL?
【发布时间】:2015-10-02 21:36:44
【问题描述】:

使用 PHP、HTML 和 Javascript。 对于 PHP,我们使用的是 MVC 框架。

我有一个关于网络通信的基本问题,也许有人可以在这里澄清一些事情。

REST 分开,只接受“post”和“get”:

假设我们这样做:
http://blabla.com/companyA/income/

它将列出给定公司的所有收入。




如果我们这样做:
http://blabla.com/companyA/income/2010/

它将列出该公司 2010 年的所有收入。

等等。


现在,我希望允许用户从 html 表单中选择一些值,并根据这些值从服务器返回适当的数据。

这是如何工作的?
a) 我们是否应该在客户端,(form action) 连接URL 字符串并将其发送到服务器端?
b) 我们的,我们是否应该将参数发送到服务器端,并返回 URL?

无论如何都行吗?只有一种方法可行吗?这些路径的后果是什么?还有第三种可能吗?

【问题讨论】:

  • 这是一个非常广泛/开放式的问题,至少我认为很难回答。我会研究项目 a) 只提供生成的 HTML(例如静态博客生成器,可能是 Jekyll 或类似的东西,但用 php 编写); b) 提供在服务器端生成的模板,例如任何使用 Twig 的 php 项目,通常通过 ajax 补充更新的模板; c)SPA,来自我的答案中的链接。这些是可供选择的最常见范例。

标签: javascript php forms url


【解决方案1】:

你应该在使用 PHP 处理时创建 url,这样你就可以从服务器传递 ID 或任何其他信息。从客户端制作 URL 需要额外的处理。

<form action="companyA/income/<?php echo (int)$years; ?>">
    ...

<form action="<?php echo $this->makeUrl('companyA/income', $years); ?>">
    ...

【讨论】:

    【解决方案2】:

    a) 我们是否应该在客户端连接 URL 字符串(表单操作)并将其发送到服务器端?

    这就是历史上一直这样做的方式,并且仍然可以正常工作。这相当于手动构建完整的 HTML,但使用 PHP(或任何服务器端语言)通过将 HTML 基于您可以轻松访问的数据来帮助您消除手工劳动。

    b) 我们的,我们是否应该将参数发送到服务器端,并返回 URL?

    这是不必要的,您已经准备好所有数据,因此使用 a) 更加可靠,因为它通过排除 render-url-from-arguments 逻辑让客户端变得有点笨。

    还有第三种可能吗?

    是的。由于您已经在 /companyA/income/2010/ (可能通过 JSON)公开了资源列表,您可以从服务器端提供一个空页面,触发对后端的 ajax 调用并在客户端动态生成列表。这带来了很多事情需要考虑,其中一些是:

    • 当(谷歌)机器人请求空白页面时,SEO 会受到怎样的影响?
    • 我们能否在不重新加载空白页面的情况下为不同的视图重用渲染逻辑?

    您可以阅读 SPA 或 Single-page applications

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-27
      • 2015-12-10
      • 2012-06-11
      • 1970-01-01
      • 2010-09-27
      • 2016-01-09
      • 2019-11-11
      相关资源
      最近更新 更多