vue-cli3.x中使用axios发送请求,配合webpack中的devServer编写本地mock数据接口(get/post/put/delete)...
2019-07-22 21:01
1336 查看
原文链接:http://www.cnblogs.com/roseAT/p/11228369.html
vue-cli3.x中使用axios发送请求,配合webpack中的devServer编写本地mock数据接口(get/post/put/delete)
手把手式笔记
Axios配置
- 安装 axios
npm install axios
- main.js同级目录新建axios配置文件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=>{ 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中引入axios与其配置文件
import axios from 'axios' import setaxios from './setaxios' //Vue全局挂载axios Vue.prototype.$http=axios //设置baseUrl axios.defaults.baseURL = '/api'
devServer中配置本地mock数据接口(vue.config.js文件中)参考webpack中文文档
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)=>{ console.log(req.body); resp.json({ "code":666, "msg":"delete测试成功" }) }) } } } }
通过上述配置操作即可完成本地mock数据接口编写,接下来是axios发送http请求测试示例
restful风格接口axios发送请求示例 参考axios中文文档
methods: { sendGet: function() { this.$http .get("/test/get", { params: { param1: "get字符串", param2: 13131 } }) .then(res => { console.log(res); }); }, sendPost: function() { this.$http .post("/test/post", { param1: "post字符串", param2: 13131 }) .then(res => { console.log(res); }); }, sendPut: function() { this.$http .put("/test/put", { param1: "put字符串", param2: 13131 }) .then(res => { console.log(res); }) .catch(err => { console.log(err); }); }, sendDelete: function() { this.$http .delete("/test/delete", { data: { param1: "delete字符串", param2: 13131 } }) .then(res => { console.log(res); }) .catch(err => { console.log(err); }); } }
完整测试demo(Test.vue)
<template> <div> <h2>HTTP-Request</h2> <button @click="sendGet()">GET</button> <span>  </span> <button @click="sendPost()">POST</button> <span>  </span> <button @click="sendPut()">PUT</button> <span>  </span> <button @click="sendDelete()">DELETE</button> <hr /> </div> </template> <script> export default { name: "testPage", data() { return {}; }, methods: { sendGet: function() { this.$http .get("/test/get", { params: { param1: "get字符串", param2: 13131 } }) .then(res => { console.log(res); }); }, sendPost: function() { this.$http .post("/test/post", { param1: "post字符串", param2: 13131 }) .then(res => { console.log(res); }); }, sendPut: function() { this.$http .put("/test/put", { param1: "put字符串", param2: 13131 }) .then(res => { console.log(res); }) .catch(err => { console.log(err); }); }, sendDelete: function() { this.$http .delete("/test/delete", { data: { param1: "delete字符串", param2: 13131 } }) .then(res => { console.log(res); }) .catch(err => { console.log(err); }); } } }; </script>
示例效果图
参考文档
如有不妥,不解之处,请滴滴我,或在评论区留言
转载于:https://www.cnblogs.com/roseAT/p/11228369.html
相关文章推荐
- VUE开发请求本地数据的配置,旧版本dev-server.js,新版本webpack.dev.conf.js
- VUE开发请求本地数据的配置,旧版本dev-server.js,新版本webpack.dev.conf.js
- VUE开发请求本地数据的配置,旧版本dev-server.js,新版本webpack.dev.conf.js
- vue开发请求本地数据旧版本dev-server.js,新版本webpack.dev.conf.js
- vue-cli的axios使用方法,get、post请求的跨域问题解决
- httpClient使用,1 发送post请求 2 发送get请求取得接口中的数据
- Vue-cli 使用json server在本地模拟请求数据
- PHP中使用CURL模拟发送GET,POST,PUT,DELETE请求
- 使用HttpClient 发送 GET、POST、PUT、Delete请求及文件上传
- Vue-cli 使用json server在本地模拟请求数据的示例代码
- Vue 2.0 --webpack.dev.conf.js--本地模拟数据(因为2.0删除了build文件下的dev-server.s )!!
- python实现的json数据以HTTP GET,POST,PUT,DELETE方式页面请求
- Android使用HttpClient以Post、Get请求服务器发送数据的方式(普通和json)
- Android HTTP实例 使用GET方法和POST方法发送请求(通过Apache接口实现)
- 模拟请求 get 、 post、put、delete 发送 xml\json\a=1&b=2&c= 等形式参数,代理设置
- 基于vue-cli的vue项目之axios的使用3--get传参请求
- Vue中使用axios(POST请求)调用后端接口时,后端接口接收不到前端参数的问题
- 浅谈使用Fiddler工具发送post请求(带有json数据)以及get请求(Header方式传参)
- vue-cli的webpack模版,相关配置文件dev-server.js与webpack.config.js配置解析
- vue通过axios发送put/post等请求,配合后台consume"MediaType.APPLICATION_FORM_URLENCODED"