vue項目前后端分離之最全請求封裝分享
vue前后端分離項目各種請求封裝+應用
目錄

http.js
import axios from 'axios'
import qs from 'qs'
import httpApi from './httpApi.js'
// const baseSrc = ""
function setUrl(src) {
? let url = httpApi.api.baseSrc + httpApi.api[src]
? return? encodeURI(url)
}
function setOutUrl(src) {
? let url = httpApi.api[src]
? return? encodeURI(url)
}
export default {
? install(Vue) {
? ? //get 請求
? ? Vue.prototype.GetAxios = function(src, params) {
? ? ? let url = setUrl(src) //設置url
? ? ? return new Promise((resolve, reject) => {
? ? ? ? axios.get(url, params)
? ? ? ? ? .then(response => {
? ? ? ? ? ? resolve(response);
? ? ? ? ? }, err => {
? ? ? ? ? ? reject(err);
? ? ? ? ? })
? ? ? ? ? .catch((error) => {
? ? ? ? ? ? reject(error)
? ? ? ? ? })
? ? ? })
? ? }
? ? Vue.prototype.GetJson = function(src, params){
? ? ? let url = setUrl(src) //設置url
? ? ? return new Promise((resolve,reject)=>{
? ? ? ? axios.request({
? ? ? ? ? ? ? url: url,
? ? ? ? ? ? ? method:"get",
? ? ? ? ? ? ? params: params,
? ? ? ? ? ? ? headers: {
? ? ? ? ? ? ? ? 'Content-Type': "Application/json; charset=utf-8"
? ? ? ? ? ? ? }
? ? ? ? ? }).then((ok)=>{
? ? ? ? ? ? ? resolve(ok)
? ? ? ? ? }).catch((err)=>{
? ? ? ? ? ? ? reject(err)
? ? ? ? ? })
? ? ? })
? }
? ? // formdata格式 post