前些天搭了一个spring boot+ vue的项目,在本机8011端口启vue调用8080端口的后台接口,调接口时总是报404,找了两天终于找到这个问题,也通过这个问题搞明白了axios跨域:
第一步:配置代理:
修改vue项目config文件夹下的index.js文件,在proxytable中添加如下代码
proxyTable:{
‘/api’: { //将www.exaple.com印射为/apis
target: ‘http://127.0.0.1:8080’, // 接口域名
// secure: false, // 如果是https接口,需要配置这个参数
changeOrigin: true, //是否跨域
pathRewrite: {
‘^/api’: ‘’ //需要rewrite的,
}
}
}
第二步: 在main.js中配置我们访问的url前缀:
import Vue from ‘vue’
import App from ‘./App’
import Axios from ‘axios’
Vue.prototype.$axios = Axios
Axios.defaults.baseURL = '/api' // 此 ‘/api’即上一步代理中第一行中的/api ,和雅阁配置每次发送请求时都会带一个/api前缀,并根据代理配置将这个前缀映射为代理中target配置的域名
Axios.defaults.headers.post['Content-Type'] = 'application/json';
Vue.config.productionTip = false
new Vue({
el: '#app',
components: { App },
template: '<App/>'
})