1、GET请求
GET最常用于向服务器查询信息。可在URL末尾添加查询字符串参数。
XHR中,传入open()方法的URL末尾的查询字符串必须经过正确的编码,使用encodeURIComponent()编码。所有名-值对儿必须由和号(&)分隔。
如:
xhr.open("get", "test.php?name1=value1&name2=value2", true);
向URL末尾添加查询字符串参数:
function addURLParam(url, name, value){
url += (url.indexOf("?") == -1 ? "?" : "&");
url += encodeURIComponent(name) + "=" + encodeURIComponent(value);
return url;
}
var url = "test.php";
//添加参数
url = addURLParam(url, "name", "Nicholas");
url = addURLParam(url, "hometown", "shanghai");
//初始化请求
xhr.open("get", url, true);
2、POST请求
POST请求向服务器发送应该被保存的数据,把数据作为请求的主体提交。
POST请求的主体可包含非常多的数据,格式不限。
默认情况下,服务器对POST请求和提交Web表单的请求会做不同的处理。
也可使用XHR来模仿表单提交:
Content-Type头部信息设置为application/x-www-form-urlencoded
以适当的格式创建一个字符串
如:
xhr.open("post", "test.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
var form = document.getElementById("user");
//serialize()序列化表单数据
xhr.send(serialize(form));
test.php代码:
<?php
//设置头部信息,发送给服务器的数据出现在$_POST超级全局变量中。
//否则,要访问同样的数据,要用$HTTP_RAW_POST_DATA
header("Content-Type: text/plain");
echo <<<EOF
Name: {$_POST["username"]}
EOF;
?>
注:POST消耗的资源比GET更多。发送相同量的数据,GET的速度最多可以比POST快一倍。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构