2020国产成人精品视频,性做久久久久久久久,亚洲国产成人久久综合一区,亚洲影院天堂中文av色

分享

vue http.js

 丶平上 2018-08-08
import axios from 'axios'
import qs from 'qs'
import appData from './AppData'

var Http = {
defaultTimeout: 20000
}

Http.ErrorCode = {
NOT_NETWORK: -1, // 無網(wǎng)絡,服務器無響應
SERVICE_ERROR: -2, // 服務器錯誤,請求錯誤返回碼不為:200
PARSER_ERROR: -3, // 接口解析錯誤
API_ERROR: -4, // 接口錯誤status不為:0
REQUEST_ERROR: -5 // 請求之前錯誤,
}

/**
*
* @param error error對象
* @param errorCode Http.ErrorCode
* @param request 請求對象
* @param response 響應對象
* @returns {*}
* @constructor
*/
var creatHttpError = function (error, errorCode, request, response) {
if (!error) {
error = new Error()
}
error.errorCode = errorCode

if (request) {
error.request = request
}

if (response) {
error.response = response
}
return error
}

// 創(chuàng)建新的實例
var axiosNew = axios.create({ timeout: Http.defaultTimeout})
axiosNew.defaults.withCredentials = true

// POST傳參序列化(添加請求攔截器)
axiosNew.interceptors.request.use(
config => {
config.headers = {
// 'X-Requested-With': 'XMLHttpRequest',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
}
// 在發(fā)送請求之前做某件事
if (
config.method === 'post' ||
config.method === 'put' ||
config.method === 'delete'
) {
// 序列化
config.data = qs.stringify(config.data)
}
return config
},
error => {
let httpError = creatHttpError(error, Http.ErrorCode.REQUEST_ERROR, error.request, error.response)
return Promise.reject(httpError)
}
)

// 返回狀態(tài)判斷(添加響應攔截器)
axiosNew.interceptors.response.use(
res => {
// 對響應數(shù)據(jù)做些事
if (res.status == 200) {
if (res.data.state == 0) {
return res.data.data
} else {
// 接口state不為0

let httpError = creatHttpError(new Error('Api Error:' + res.data.data), Http.ErrorCode.API_ERROR, res.request, res)
return Promise.reject(httpError)
}
} else {
let httpError = creatHttpError(new Error('Server Error:' + res.status), Http.ErrorCode.SERVICE_ERROR, res.request, res)
return Promise.reject(httpError)
}
},
error => {
if (error.response) {
// 服務器有響應
let httpError = creatHttpError(error, Http.ErrorCode.SERVICE_ERROR, error.request, error.response)
return Promise.reject(httpError)
} else {
// 無網(wǎng)絡或者服務器無響應
let httpError = creatHttpError(error, Http.ErrorCode.NOT_NETWORK, error.request, error.response)
return Promise.reject(httpError)
}
}
)

/**
this.$http.post(url,data).then((data)=>{

}).catch((error)=>{

})

*
* @param url
* @param data
* @returns {Promise<any>}
*/
Http.post = function (url, data) {
return new Promise(function (resolve, reject) {
axiosNew.post(url, data).then(function (data) {
resolve(data)
}).catch(function (error) {
console.log('http-post-error:', error)
reject(error)
})
})
}

/**
this.$http.get(url,data).then((data)=>{

}).catch((error)=>{

})

*
* @param url
* @param data
* @returns {Promise<any>}
*/
Http.get = function (url, params) {
return new Promise(function (resolve, reject) {
axiosNew.get(url, {params: params}).then(function (data) {
resolve(data)
}).catch(function (error) {
console.log('http-get-error:', error)
reject(error)
})
})
}

/**
* 延時請求,等下次頁面加載再去請求,跳轉(zhuǎn)頁面上報功能一般用這個
* @param url
* @param data
*/
Http.postWhenFreeTime = function (url, data) {
// let requests = storage.getLocal('postWhenFreeTime',[])
// requests.push({url:url,data:data})
// storage.setLocal('postWhenFreeTime',requests)

let requests = appData.postWhenFreeTime
requests.push({url: url, data: data})
}

/**
* 激活上報
*/
Http.startPost = function () {
// setTimeout(function () {
// let requests = storage.getLocal('postWhenFreeTime',[])
// if(requests.length>0){
// let request = requests.shift()
// storage.setLocal('postWhenFreeTime',requests)
// Http.post(request.url,request.data).finally(function () {
// Http.startPost()
// })
// }
// },1000)

setTimeout(function () {
let requests = appData.postWhenFreeTime
if (requests.length > 0) {
let request = requests.shift()
Http.post(request.url, request.data).finally(function () {
Http.startPost()
})
}
}, 1000)
}

module.exports = Http

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多