原生js封装axios
时间: 2024-01-12 10:21:23 浏览: 122
封装axios.js
以下是原生JS封装axios的示例代码:
```javascript
// 封装axios
function myAxios(config) {
return new Promise((resolve, reject) => {
// 创建XMLHttpRequest对象
const xhr = new XMLHttpRequest();
// 设置请求方法和URL
xhr.open(config.method, config.url, true);
// 设置请求头
if (config.headers) {
for (let key in config.headers) {
xhr.setRequestHeader(key, config.headers[key]);
}
}
// 监听请求状态变化
xhr.onreadystatechange = function() {
if (xhr.readyState === 4) {
if (xhr.status === 200) {
resolve(xhr.responseText);
} else {
reject(xhr.statusText);
}
}
};
// 发送请求
xhr.send(config.data);
});
}
// 使用封装的axios
myAxios({
method: 'GET',
url: 'https://api.example.com/data',
headers: {
'Content-Type': 'application/json'
}
}).then(response => {
console.log(response);
}).catch(error => {
console.error(error);
});
```
阅读全文