npm install axios
或者
yarn add axios
import axios from 'axios';
methods
部分或任何其他适当的地方,你可以使用 Axios 发起 GET、POST 或其他类型的 HTTP 请求。例如,发起一个 GET 请求:
export default {
// ...
methods: {
fetchData() {
axios.get('https://api.example.com/data')
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error('There was an error!', error);
});
}
}
// ...
}
mounted
生命周期钩子中调用你的 AJAX 请求方法:export default {
// ...
mounted() {
this.fetchData();
},
// ...
}
.then()
方法中,你可以处理从服务器返回的响应。例如,你可以将返回的数据设置到 Vue 组件的 data
属性中。.catch()
方法来捕获并处理请求中可能发生的任何错误。请确保根据你的具体需求调整这些步骤,例如,处理不同类型的请求、不同的端点以及不同的响应类型。
// http.js
import axios from 'axios';
const http = axios.create({
baseURL: 'https://api.example.com',
timeout: 10000, // 请求超时时间
headers: {
'Content-Type': 'application/json'
}
});
export default http;
http.interceptors.request.use(config => {
// 在这里添加例如授权头部等
// config.headers.Authorization = `Bearer ${token}`;
return config;
}, error => {
// 请求错误的处理
return Promise.reject(error);
});
http.interceptors.response.use(response => {
// 对响应数据做点什么
return response.data;
}, error => {
// 响应错误的处理
return Promise.reject(error);
});
// apiService.js
import http from './http';
const getSomething = params => http.get('/something', { params });
const postSomething = data => http.post('/something', data);
export {
getSomething,
postSomething
};
<script>
import { getSomething, postSomething } from './apiService';
export default {
// ...
methods: {
fetchData() {
getSomething({ id: 123 }).then(data => {
console.log(data);
});
},
submitData() {
postSomething({ name: 'example' }).then(data => {
console.log(data);
});
}
}
// ...
}
</script>
这种方式可以使你的 HTTP 请求逻辑更加清晰和集中,更容易维护和复用。记得根据你的实际需求调整上面的代码,例如不同的 baseURL、请求头、错误处理方式等。