首页 > 解决方案 > AJAX 请求在正文而不是 URL 连接中发布数据

问题描述

我看到许多网站通过 URL 中的数据连接来追求他们的请求,例如:example.com/api?data=111。

在我的网站上,我通过 AJAX 以另一种方式处理请求:

return $.ajax({ url: '../api.php',
                    data: {data: '111'},
                    type: 'post'
    });

我想知道我的方法是否有任何缺陷,或者它是否可以像标准的 URL 连接方法一样使用。

上下文更新

function createAJAXRequestToGetCategories() {
  return $.ajax({
    url: '../server.php',
    data: {
      method: 'requestCategories'
    },
    type: 'post'
  });
}
ajaxRequest = createAJAXRequestToGetCategories();
ajaxRequest.done(functionToExecute);
functionToExecute(responseData) {}

标签: javascripthtml

解决方案


想到的一些区别:

  1. 您不能在 GET 请求期间以相同的方式使用正文,显然这不是您在上面所做的,但您可能看到的很多请求都是 GET 请求
  2. 调试,看到有人在你的日志中点击/api.php?action=create.user和接收500s 比你下面的所有端点更容易调试/api.php
  3. URL 字符限制,就在上周,我设法超过了端点请求中的字符限制,即/api.php?id=1,2,3,4,5...(一般限制为 2083 个字符),使用正文在一定程度上规避了这一点(您的服务器仍会限制在一定程度上发布的数据)

无论哪种方式,都可能有更多令人信服的论点。我通常将 URL 参数用于目的/标识,并将正文用于实际数据。


推荐阅读