我先vue init webpack 新建项目,然后进行跨域测试,结果无论是proxyTable还是vue.config.js方法都没用,都是404
我只改动了这几个地方,其他没动过
main.js
import Vue from 'vue'
import App from './App'
import router from './router'
import axios from 'axios'
Vue.prototype.$axios = axios
axios.defaults.baseURL = '/api' //关键代码
Vue.config.productionTip = false
/* eslint-disable no-new */
new Vue({
el: '#app',
router,
components: { App },
template: '<App/>'
})
config->inde.js
proxyTable: {
//碰到college路由就会起作用了
'/api': {
target: 'http://jsonplaceholder.typicode.com', // 你请求的第三方接口
changeOrigin: true, // 在本地会创建一个虚拟服务端,然后发送请求的数据,并同时接收请求的数据,这样服务端和服务端进行数据的交互就不会有跨域问题
pathRewrite: { // 路径重写,
'^/api': '' // 替换target中的请求地址,也就是说以后你在请求http://api.douban.com/v2/XXXXX这个地址的时候直接写成/api即可。
}
}
},
components->BlogList.vue
mounted() {
this.$axios.get("/users").then(response => {
console.log(response)
});
}
router->index.js
import Vue from 'vue'
import Router from 'vue-router'
import HelloWorld from '@/components/HelloWorld'
import BlogList from '@/components/BlogList'
Vue.use(Router)
export default new Router({
routes: [
{
path: '/',
name: 'HelloWorld',
component: HelloWorld
},
{
path: '/blogs',
name: 'BlogList',
component: BlogList
}
]
})
运行结果及报错内容
GET http://localhost:8080/api/users 404 (Not Found) xhr.js?83b8:220