vue - axios 2 차 패키지
import axios from 'axios'
import qs from 'qs'
import { Toast } from "mint-ui"
import {httpBaseUrl} from './config' ====httpBaseUrl
/**
* axios
*
* axios $http
*
* method , 'GET' 'POST',
* url , ip, , ip config.js , httpBaseUrl : 10.88.123.01:8080
* data ,
* Promise ,then() data data, res , data res.data
*
*
*
*/
//POST ( )
axios.interceptors.request.use(config=>{
return config
},error=>{
return Promise.reject(error)
})
// ( )
axios.interceptors.response.use(response=>{
return response
},error=>{
return Promise.resolve(error.response)
})
//
function errorState(response){
// ,
if(response&&(response.status===200||response.status===304||response.status===400)){
// date , response.data
return response
}else{
Toast({
message: ' ',
position: 'bottom',
duration: 3000,
})
}
}
//
function successState(res){
// if(res.data.body&&res.data.status){
// // if(res.data.body.length==0){
// // Toast({
// // message: ' ',
// // position: 'bottom',
// // duration: 1000,
// // })
// // }
// if(res.data.status.code == '1001'){
// Toast({
// message: ' ',
// position: 'bottom',
// duration: 3000,
// })
// }
// }
}
//
const httpServer=(method='GET',url,data={},option={})=>{
let requestMethod=method.toUpperCase()
if(url.indexOf("://")>0){
url=url
}else if(url[0]!='/'){
url=httpBaseUrl+'/'+url
}else{
url=httpBaseUrl+url
}
let Public={ //
}
let httpDefaultOpts={ //http
method:requestMethod,
url:url,
timeout:65*1000,
//Object.assign ES6 , JavaScript 。
params:Object.assign(Public,data), //GET
// data:qs.stringify(Object.assign(Public,data)),
data:JSON.stringify(Object.assign(Public,data)), //POST
headers:requestMethod=='GET'?{
"Accept": "application/json",
"Content-Type": "application/json; charset=UTF-8"
}:{
'X-Requested-With': 'XMLHttpRequest',
// 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
"Content-Type": "application/json; charset=UTF-8"
}
}
Object.assign(httpDefaultOpts,option)
if(requestMethod=='GET'){
delete httpDefaultOpts.data
}else{
delete httpDefaultOpts.params
}
return new Promise((resolve,reject)=>{
axios(httpDefaultOpts).then((res)=>{
// console.log(res)
successState(res)
resolve(res.data)
}).catch((response)=>{
console.log(response)
errorState(response)
reject(response)
})
})
}
export default httpServer
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.