1.折磨了两个多小时 ,终于找到一个适合自己项目的方式,解决了跨域问题,并且记录一下 在前端项目工程中:
1、安装命令:
cnpm instal axios --save
2、在前端根目录下创建一个文件vue.config.js 添加如下内容
'use strict';
const baseUrl = 'http://XXX.XXX.XX.X:1001'
module.exports = {
devServer: {
//跨域请求配置
proxy: {
'/api': {
target: baseUrl,
changeOrigin: true,//是否跨域 开启代理:在本地创建一个虚拟服务器
ws: true,//是否代理websockets
secure: false,//如果是https接口,需要配置这个参数
pathRewrite: { '^/api': '/' } //重写路径
}
},
},
};
3、在main.ts中添加
import Axios from "axios";
Axios.defaults.withCredentials = true;
// step2:把axios挂载到vue的原型中,在vue中每个组件都可以使用axios发送请求,
// 不需要每次都 import一下 axios了,直接使用 $axios 即可
Vue.prototype.$axios = Axios;
// step3:使每次请求都会带一个 /api 前缀
Axios.defaults.baseURL = '/api';
4、在页面中调用
import axios from "axios";
@Component
export default class Home extends Vue {
data1 = [];
mounted() {
// 在生命周期中调用 getRenderer 方法
this.queryUser();
}
async queryUser() {
await axios
.get("/user")
//then获取成功;response成功后的返回值(对象)
.then((response) => {
console.log(response);
this.data1 = response.data.user;
})
//获取失败
.catch((error) => {
console.log(error);
alert("网络错误,不能访问");
});
}