项目结构:需要平级src建一个vue.config.js,然后src建一个setaxios.js,
setaxios.js
import axios from "axios"; // import store from './store' //vuex // import router from './router' //路由 export default function setAxios() { //拦截request请求 axios.interceptors.request.use(config => { // eslint-disable-next-line no-console console.log(config.data); return config; }); //拦截response回调 axios.interceptors.response.use(response => { if (response.status === 200) { const data = response.data; // if (data.code === 400){ // //登录过期,权限不足 // console.warn("登陆过期"); // //清除token // store.commit('setToken','') // window.localStorage.removeItem('token') // //跳转登录 // router.replace({ // path:"/login" // }) // } return data; } return response; }); }
main.js
import Vue from "vue"; import App from "./App.vue"; import router from "./router"; import axios from "axios"; Vue.config.productionTip = false; //Vue全局挂载axios Vue.prototype.$http = axios; //设置baseUrl axios.defaults.baseURL = "/api"; new Vue({ router, render: h => h(App) }).$mount("#app");
login.vue插入js代码
<script > export default { name: "login", data() { return { username: "", password: "" }; }, methods: { get: function() { this.$http({ method: "POST", url: "接口路径", data: { mobile: this.username, password: this.password } }).then(function(res) { if (res.statusText == "OK") { alert("登陆成功"); } }); } } }; </script>
vue.config.js
module.exports = { publicPath: "./", outputDir: "dist", assetsDir: "static", configureWebpack: { devServer: { contentBase: "./build", //项目基本访问目录 host: "localhost", //服务器ip地址 port: 8088, //端口 open: true, //自动打开页面 hot: true, //模块热替换 hotOnly: true, //只有热更新不会刷新页面 //mock数据接口部分 关键部分 before(app) { const bodyParser = require("body-parser"); app.use(bodyParser.json()); //通过bodyParser获取req.body) /** * testGet */ app.get("/api/test/get", (req, resp) => { // console.log(req.query); resp.json({ code: 111, msg: "get测试成功" }); }); /** * testPost */ app.post("/api/test/post", (req, resp) => { // console.log(req.body); resp.json({ code: 123, msg: "post测试成功" }); }); /** * testPut */ app.put("/api/test/put", (req, resp) => { // console.log(req.body); resp.json({ code: 123, msg: "put测试成功" }); }); /** * testDelete */ app.delete("/api/test/delete", (req, resp) => { // eslint-disable-next-line no-console console.log(req.body); resp.json({ code: 666, msg: "delete测试成功" }); }); } } } };