【问题标题】:Is GET better than POST in AJAX approach? [closed]GET 比 AJAX 方法中的 POST 更好吗? [关闭]
【发布时间】:2014-09-22 13:41:40
【问题描述】:

我想知道,为什么我们还在 AJAX 请求中使用 GET 方法,例如:

$.ajax({
  type: "GET",
  url: "SomeController/GetSomething",
  data: { id: 100}
});

GET 很方便,当您想在 url 中存储数据时,当您查询 Google 并且您想将该查询发送给朋友或其他任何人时。另一方面,我们有安全漏洞。它们并不大(我会说它们是障碍),但是当您不想显示表单数据时,使用 POST 会稍微好一些。此外,POST 可以存储任何类型的数据、控制数据大小并以某种方式隐藏传递的变量。

总是在不“公开”的地方(搜索栏、文章页面、用户个人资料等)使用 GET 并在其他任何地方使用 POST 是否是一个好的解决方案?使用这种方法,所有 AJAX 查询都应该使用 POST 方法发送。

【问题讨论】:

  • GET 表示可以看到URL中的参数;不是这样的 / POST。 GET 有一个最大长度限制(取决于服务器:2KB-8KB);不是这样的 / POST。
  • 不同之处不在于你如何使用它,而在于它们应该如何使用:GET = 给我 id 为 100 的“东西”。POST = 创建 id 为 100 的东西。这主要用于 RESTful服务虽然。另一个原因是您可以复制 GET 请求,而不是 POST 请求。
  • 当然是REST。
  • 我输入得太早了...已添加到我的评论中 :-)
  • GET 必须比 POST 快一点,同时没有传递敏感数据

标签: javascript jquery ajax post get


【解决方案1】:

当使用POST XHR 时,您使用两步流程:首先发送标头,然后发送数据,但是您使用 Ajax 进行响应,对吗?那么,既然可以使用一步流程 (GET XHR),为什么还要使用两步流程呢?

此外,AFAIK,GET 请求是可缓存的,POST 不是。

最后但并非最不重要的一点,正如一些人指出的那样:HTTP 动词确实有意义。

继续使用GET XHR 从服务器获取数据,使用POST XHR 发送数据。

【讨论】:

    【解决方案2】:

    正如您所说,GET 并不安全,但它允许我们复制和粘贴链接并获得相同的结果。 POST 更安全,因为它不直接显示参数,它仍然需要在后端工作以填补所有漏洞。

    【讨论】:

      【解决方案3】:

      关键是不要忘记为什么一个叫做“GET”而另一个叫做“POST”。

      GET 是可访问的,因此不适用于任何敏感,但易于直接操作。

      POST 应该用于向服务器端提交敏感或“冗长”的数据。

      【讨论】:

        【解决方案4】:

        这只是我的看法:

        真正想知道发布了什么数据的精明用户总是能够准确地发现在 http 请求期间传输的数据。您真正需要的唯一工具是现代浏览器中内置的工具。如果您使用 HTTPS 传输,那么第三方将能够识别 GET 参数,但不能识别 POST 数据,所以我会说敏感数据只能作为 POST 发送是正确的。否则,作为一种安全工具,POST over GET 提供与密码输入时的密码掩码类似的功能(防止有人从您的肩膀上查看您的数据)。

        现在,对于您的问题“GET 更好吗...?”

        我想说,就像同步 http 请求一样,当用户或您的应用程序需要 get 数据时,您应该使用 GET,而当您的用户应用程序需要 post 时,您应该使用 POST 数据(用于持久性 - 在会话中(如登录)或数据库等)。所以这实际上更多是语义上的差异。实际上,如果您愿意,您可以将 post 用于所有内容。

        【讨论】:

          猜你喜欢
          • 2013-02-27
          • 2020-05-11
          • 1970-01-01
          • 2014-10-22
          • 2014-09-20
          • 1970-01-01
          • 1970-01-01
          • 2010-09-11
          相关资源
          最近更新 更多