fetch 是基于 Promise 的现代 API,语法简洁,推荐用于新项目;2. AJAX(XMLHttpRequest)兼容性好但代码冗长,适合旧浏览器;3. fetch 需手动检查 response.ok 并解析 JSON,不因 HTTP 错误状态自动 reject;4. 两者均可实现 GET 和 POST 请求,但 fetch 支持 async/await 更易读;5. 中断请求方面,XMLHttpRequest 使用 abort(),fetch 需借助 AbortController;6. 实际开发中建议新项目用 fetch,兼容性需求可选 axios 或封装 XMLHttpRequest;7. 注意处理网络异常与业务错误区分,及安全凭据设置。

JavaScript发送HTTP请求是前端与后端交互的核心能力。现代开发中,常用的方法有 fetch 和传统的 AJAX(通常通过 XMLHttpRequest)。下面详细介绍它们的使用方式、区别和实际应用场景。
基本用法:
fetch('https://api.example.com/data')
.then(response => {
if (!response.ok) {
throw new Error('网络请求失败');
}
return response.json();
})
.then(data => {
console.log(data);
})
.catch(error => {
console.error('错误:', error);
});
fetch('https://api.example.com/users', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
name: '张三',
age: 25
})
})
.then(response => response.json())
.then(data => {
console.log('提交成功:', data);
})
.catch(error => {
console.error('错误:', error);
});
注意:fetch 不会因 HTTP 状态码报错(如 404 或 500),需手动检查 response.ok。
基本流程:
立即学习“Java免费学习笔记(深入)”;
const xhr = new XMLHttpRequest();
xhr.open('GET', 'https://api.example.com/data', true);
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) {
const data = JSON.parse(xhr.responseText);
console.log(data);
}
};
xhr.send();
const xhr = new XMLHttpRequest();
xhr.open('POST', 'https://api.example.com/users', true);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 201) {
const data = JSON.parse(xhr.responseText);
console.log('创建成功:', data);
}
};
xhr.send(JSON.stringify({
name: '李四',
age: 30
}));
缺点:代码冗长,嵌套回调容易形成“回调地狱”,不如 fetch 直观。
const controller = new AbortController();
fetch('/api/data', { signal: controller.signal })
.then(response => response.json())
.then(data => console.log(data));
// 需要时中断请求
controller.abort();
以上就是JavaScript如何发送HTTP请求_JavaScriptfetch与AJAX请求方法使用教程的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号