javascript - 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) {}
解决方案
想到的一些区别:
- 您不能在 GET 请求期间以相同的方式使用正文,显然这不是您在上面所做的,但您可能看到的很多请求都是 GET 请求
- 调试,看到有人在你的日志中点击
/api.php?action=create.user
和接收500
s 比你下面的所有端点更容易调试/api.php
- URL 字符限制,就在上周,我设法超过了端点请求中的字符限制,即
/api.php?id=1,2,3,4,5...
(一般限制为 2083 个字符),使用正文在一定程度上规避了这一点(您的服务器仍会限制在一定程度上发布的数据)
无论哪种方式,都可能有更多令人信服的论点。我通常将 URL 参数用于目的/标识,并将正文用于实际数据。
推荐阅读
- php - 限制 div 层内的 foreach 打印
- ssl - 如何使用 tcpdump 检查/确认客户端证书正在通过 2 路 SSL 连接发送?
- node.js - 开发 VSCode 扩展时调用 Spring 服务 JAR 的 child_process 放在哪里?
- c++ - 在 C++ 中,使用 ifstream 打开一个 csv 文件
- google-cloud-platform - GCP:查看者角色有哪些权限?
- c# - LINQ to SQL和外键的基本误解
- node.js - 如何分配承诺类型的参数
- html - React:对可控输入的验证不一致
- sql - '关系“bigint”不存在'错误使用带有go的sqlc库
- python - AttributeError:“字节”对象没有属性“编码”Base64