1、安装axios:
npm install axios
2、引入axios:
import axios from "axios";
import QS from "qs"; // 引入qs模块
3、配置请求、响应拦截器:
//请求拦截器
axios.interceptors.request.use(
config => {
const token = store.state.token;
if (token) {
config.headers["Authorization"] = 'Bearer ' + token;
}
const projectId = store.state.projectId;
if (projectId) {
config.headers['project'] = projectId
}
// config.headers['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';
return config
},
//抛出错误
error => {
return error;
}
)
//响应拦截器
axios.interceptors.response.use(
response => {
if (response.status === 200) {
var parser = new DOMParser();
var xmlDoc = parser.parseFromString(response.data, "text/xml");
var countrys = xmlDoc.getElementsByTagName('string');
var arr = [];
for (var i = 0; i < countrys.length; i++) {
arr.push(countrys[i].textContent);
};
var data = JSON.parse(arr[0]);
return Promise.resolve(data)
} else {
return Promise.reject(response)
}
},
error => {
return Promise.resolve(error.response)
}
)
4、配置post、get请求:
//get请求
get(url, params = {}, headers = {}) {
return new Promise((resolve, reject) => {
axios.get(url, params, headers)
.then(res => {
resolve(res);
})
.catch(err => {
reject(err)
})
})
},
//post请求
post(url, params = {}, headers = {}) {
return new Promise((resolve, reject) => {
axios.post(url, QS.stringify(params), headers)
.then(res => {
resolve(res);
})
.catch(err => {
reject(err)
})
})
},
5、页面使用并处理结果:
this.$api.Login({
userName: this.ruleForm.user,
password: this.ruleForm.pass,
systemCode: this.ruleForm.code,
}).then((data) => {
console.log(data)
if (data.Code == '0') {
this.$message({
message: '欢迎admin管理员',
type: 'success'
});
}
})