【随笔】不引入外部包、使用原生js发送请求的几种方式

参考文档:https://www.freecodecamp.org/chinese/news/the-most-popular-ways-to-make-an-http-request-in-javascript/

1.form表单提交

<form action="http://www.baidu.com" method="post">
    <input type="text" name="name" value="123">
    <input type="submit" value="提交">
</form>

只能单向提交,不能接收返回值。

2. XMLHttpRequest

var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); // 设置请求头
xhr.send(JSON.stringify({name: '123'})); // 发送请求,body。如果后端不接受body类型的请求,则直接将参数放在url中,这里只需写成xhr.send()即可
xhr.onreadystatechange = function () {
    if (xhr.readyState == 4 && xhr.status == 200) {
        console.log(xhr.responseText);
    }
}

注意setRequestHeader必须在open之后,send之前设置,如果放在open之前则会报以下错:

Uncaught DOMException: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': The object's state must be OPENED.

3. fetch

fetch需要es6的支持,nodejs需要v17.5.0以上版本

fetch(url, {
    method: 'POST',
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded'
    },
    body: JSON.stringify({name: '123'})
}).then(res => res.text()).then(res => console.log(res));
posted @   longxiaoming  阅读(178)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示
目录导航
目录导航
【随笔】不引入外部包、使用原生js发送请求的几种方式
1.form表单提交
2. XMLHttpRequest
3. fetch
发布于 2023-04-09 02:28