import qs from 'qs'
import axios from 'axios'


 //拦截器
axios.interceptors.request.use(function (config) {
    console.log('正在发送请求哦...')//添加loading效果
    return config;
}, function (error) {
    return Promise.reject(error);
});

// Add a response interceptor
axios.interceptors.response.use(function (response) {
    console.log('请求成功啦...')
    return response;
}, function (error) {
    return Promise.reject(error);
});




const ajax={
	post:function(url,data={}){
		return new Promise((resolve,reject)=>{
			axios.post(url,qs.stringify(data)).then(function(res){
				resolve(res.data)
			}).catch(function(err){
				reject(err)
			})
		})
	},
	get:function(url,data={}){
		return new Promise((resolve,reject)=>{
			axios.get(url,{params:qs.stringify(data)}).then(function(res){
				resolve(res.data)
			}).catch(function(err){
				reject(err)
			})
		})
	},

}
export default ajax;

在main.js中 

import ajax from './common/api/index.js'

Vue.prototype.$post=ajax.post Vue.prototype.$get=ajax.get

 

jsonp

import originJSONP from 'jsonp'
/*
jsonp(url,option,callbackFn)
{name:1,age:20}
www.aaa.com/?  
*/
export default function(url,data,option){
	 url+=(url.indexOf('?')<0 ? '?' : '&' )+param(data);

	return new Promise(function(resolve,reject){
		originJSONP(url,option,function(err,res){
				if(!err){
					resolve(res);
				}else{
					reject(err)
				}
		})
	})
}
/*
{name='aa',age=20}
&name=aa&age=20
*/
function param(data){
	let url='';
	for(let key in data){
		let item =data[key]!==undefined ? data[key] : '';
		url+=`&${key}=${encodeURIComponent(item)}`
	}
	return url ? url:'';
}

 

Logo

前往低代码交流专区

更多推荐