版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/keji_123/article/details/81871211
* 封装axios,减少学习成本,参数基本跟jq ajax一致 * @param {String} type 请求的类型,默认post * @param {String} url 请求地址 * @param {String} time 超时时间 * @param {Object} data 请求参数 * @param {String} dataType 预期服务器返回的数据类型,xml html json ... * @param {Object} headers 自定义请求headers * @param {Function} success 请求成功后,这里会有两个参数,服务器返回数据,返回状态,[,data res] * @param {Function} error 发送请求前 * @param return
import axios from 'axios';
var Rxports={
ajax:function (opt){
let self = this;
var opts = opt || {};
if (!opts.url) {
alert('请填写接口地址');
return false;
}
let obj={
method: opts.type || 'post',
url: opts.url,
headers: opts.headers || {
'Content-Type':'application/x-www-form-urlencoded',
},
// `baseURL` 将自动加在 `url` 前面,除非 `url` 是一个绝对 URL。
// 它可以通过设置一个 `baseURL` 便于为 axios 实例的方法传递相对 URL
// baseURL:'https://www.precise.com/www/',
baseURL:self.apiURI(),
timeout: opts.time || 10*1000,
responseType: opts.dataType || 'json',
}
opts["data"] = opts["data"]||{};
//进行数据深度拷贝。防止修改数据时将原始数据污染;
let str = JSON.stringify( opts["data"]);
opts["data"] = JSON.parse(str);
opts["data"]["token"] = opts["data"]["token"] || self.getToken("token")["token"];
//this.Log(opts["data"]["token"]);
if( opts.type =='post'){
obj.data = qs.stringify(opts.data || {})
}else{
obj.params = opts.data || {}
}
axios(obj).then(function(res){
if(res.status == 200 ){
if(opts.success){
opts.success(res.data,res);
if(res.data.t && res.data.t.length>0){
modal.show(res.data.t,self.getToken('token')['token'],self.apiURI());
console.log('ajax',res.data.t)
}
}
}else{
if (data.error) {
opts.error(error);
}else{
console.log('网络故障' + data.error);
}
}
}).catch(function (error){
console.log('回调处理错误',error);
if (opts.error) {
opts.error(error);
}else{
// console.log('网络故障');
}
});
}
}