get请求:javascript
this.$axios.get("http://www.wwtliu.com/sxtstu/news/juhenews.php",{ params:{//是否添加.get都是使用get方式发送请求,axios的默认方式 type:"junshi", count:30 } }).then(res => { this.newsData = res.data; }).catch(error => {})
post请求:php
form-data:?name=iwen&age=20 x-www-form-urlencoded:{name:"iwen",age:20} //注意:axios接受的post请求参数的格式是form-data格式 this.$axios.post("http://www.wwtliu.com/sxtstu/blueberrypai/login.php", qs.stringify({ user_id:"iwen@qq.com", password:"iwen123", verification_code:"crfvw" })).then(res => {}) .catch(error => {})
全局axios默认值前端
axios.defaults.baseURL = 'https://api.example.com'; axios.defaults.headers.common['Authorization'] = AUTH_TOKEN; axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
全局拦截器vue
//请求拦截器 axios.interceptors.request.use(function (config) { //在发送请求以前的处理 if (config.method == "post") {//处理post请求 config.data = qs.stringify(config.data); } return config; }, function (error) { //对请求错误处理 return Promise.reject(error); }); //响应拦截器 axios.interceptors.response.use(function (response) { //对响应数据处理 return response; }, function (error) { //对响应错误处理 return Promise.reject(error); });
解决跨域问题
解决跨域问题(与config中index.js一块儿配置)java
Vue.prototype.HOST = '/api'
index.js文件中在dev:{}中添加ios
proxyTable: { "/api": { target: "http://localhost:8080", changeOrigin: true, pathRewrite: { '^/api': '' } } },
使用时web
var url = this.HOST + "/illness/GetHospitalList"; axios.get(url, {}).then(response => {}).catch(error=>{});
开发时建议不在前端进行跨域处理,由于在打包合并时须要处理的请求url过多,
建议使用axios默认配置中的默认url进行配置,打包合并时只须要修改一处便可
跨域与默认配置不可用时使用,使用跨域时须要注释掉默认配置axios
vue-resource使用api
this.$http.get(url).then(response => { console.log(response.body); }).catch(error => { console.log(error); })