前端 JavaScript 基础面试题, ajax,axios,fetch 的区别是什么?
前端 JavaScript 基础面试题, ajax,axios,fetch 的区别是什么?
QA
Step 1
Q:: ajax、axios、fetch 的区别是什么?
A:: Ajax、Axios 和 Fetch 都是用于在前端进行 HTTP 请求的技术。Ajax(Asynchronous JavaScript and XML)是一种使用 XMLHttpRequest 对象来与服务器交换数据的方法,支持异步请求。Axios 是一个基于 Promise 的 HTTP 库,具有更简单的 API 和更强大的功能,如自动转换 JSON 数据、处理请求和响应的拦截器等。Fetch 是现代浏览器提供的原生 API,也是基于 Promise 的,具有简洁的语法,但不如 Axios 具备那么多的高级功能,如默认的超时处理和请求拦截器。
Step 2
Q:: 如何使用 fetch 发起一个 GET 请求?
A:: 可以通过 fetch API 发送 GET 请求如下:
fetch('https://api.example.com/data')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
Step 3
Q:: 如何在 axios 中处理错误?
A:: 在 axios 中可以通过 .catch
方法来捕获错误,或者在请求拦截器中处理全局错误。
axios.get('https://api.example.com/data')
.then(response => console.log(response.data))
.catch(error => console.error('Error:', error));
此外,还可以设置全局错误处理:
axios.interceptors.response.use(
response => response,
error => {
console.error('Global Error Handler:', error);
return Promise.reject(error);
}
);
Step 4
Q:: 如何在 fetch 请求中发送 JSON 数据?
A:: 可以通过 fetch API 发送 JSON 数据如下:
fetch('https://api.example.com/data', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ key: 'value' })
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
Step 5
Q:: 如何在 axios 中设置请求头?
A:: 可以在 axios 请求配置对象中设置请求头:
axios.post('https://api.example.com/data', {
key: 'value'
}, {
headers: {
'Content-Type': 'application/json'
}
})
.then(response => console.log(response.data))
.catch(error => console.error('Error:', error));
用途
面试这些内容是为了评估候选人对前端 HTTP 请求的掌握情况,这在实际开发中是非常常见且重要的操作。前端与后端的数据交互、API 的调用、页面数据的动态更新等都依赖于这些技术。熟练掌握这些技术可以确保前端开发人员能够高效地与服务器进行通信,并处理各种数据交互需求。\n相关问题
🦆
CORS 是什么,如何解决跨域问题?▷
🦆
Promise 和 asyncawait 的区别是什么?▷
🦆
如何在 JavaScript 中处理并发请求?▷
🦆
如何取消一个正在进行的 HTTP 请求?▷
🦆
什么是 HTTP 缓存,如何利用 HTTP 头优化缓存?▷