100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > vuex webpack 配置_vue+webpack切换环境和打包之后服务器配置

vuex webpack 配置_vue+webpack切换环境和打包之后服务器配置

时间:2022-10-23 02:48:54

相关推荐

vuex webpack 配置_vue+webpack切换环境和打包之后服务器配置

import axios from ‘axios‘

import store from ‘../store/index‘

const rootUrl =process.env.API_ROOT//创建axios实例

const service =axios.create({

timeout:30000 //超时时间

})//添加request拦截器

service.interceptors.request.use(config =>{if (Object.keys(config.headers).length > 0) {

}//console.log(‘headers‘ + config.headers)

returnconfig

}, error=>{

Promise.reject(error)

})//添加response拦截器

service.interceptors.response.use(

response=>{

let res={}

res.status=response.status

res.data=response.data

res.headers=response.headers//console.log(‘####‘ + JSON.stringify(response.data))

returnres

},

error=>{if (error.response && error.response.status === 404) {

console.log(‘404错误‘)

}returnPromise.reject(error.response)

}

)//封装get接口//params={} 是设置默认值

export function get(url, params = {}, header ={}) {

params.t= new Date().getTime() //get方法加一个时间参数,解决ie下可能缓存问题.

returnservice({

url: url,

method:‘get‘,

headers: header,

params

})

}//封装post请求

export function post(url, data = {}, header ={}) {//默认配置

let sendObject ={

url: url,

method:‘post‘,

headers: header,

data: data

}

sendObject.data=JSON.stringify(data)returnservice(sendObject)

}//封装put方法 (resfulAPI常用)

function put(url, data = {}, header ={}) {returnservice({

url: url,

method:‘put‘,

headers: header,

data: JSON.stringify(data)

})

}//删除方法(resfulAPI常用)

function deletes(url, header ={}) {returnservice({

url: url,

method:‘delete‘,

headers: header

})

}//patch方法(resfulAPI常用)

function patch(url, header ={}) {returnservice({

url: url,

method:‘patch‘,

headers: header

})

}//处理格式化URL(/demo/{id})

function render(url, data) {

var re= /{([^]+)?}/var match= ‘‘

while ((match =re.exec(url))) {

url= url.replace(match[0], data[match[1]])

}returnurl

}const fetch = (options) =>{

let url=options.url

url=render(url, options.data)switch(options.method.toUpperCase()) {case ‘GET‘:returnget(url, options.data, options.header)case ‘POST‘:returnpost(url, options.data, options.header)case ‘PUT‘:returnput(url, options.data, options.header)case ‘DELETE‘:returndeletes(url, options.data, options.header)case ‘PATCH‘:returnpatch(url, options.data, options.header)default:returnservice(options)

}

}/*** 提供一个http方法

* url 访问路径 不包括域名和项目名

* data 参数对象

* method 请求方式

**/export function httpApiTools(url= ‘‘, body = {}, header = {}, method = ‘GET‘) {

var newUrl= rootUrl +urlif (Object.keys(store.state.serverConfig).length > 0) {//上线后修改配置

console.log(‘store.state.serverConfig:‘ +store.state.serverConfig)

newUrl= store.state.serverConfig +url

}else{//上线前多服务器环境切换

console.log(‘store.state.serverConfig:‘ +store.state.serverConfig)

newUrl= rootUrl +url

}

console.log(‘请求路径:‘ +newUrl)const options ={

url: newUrl,

data: body,

header: header,

method: method

}return fetch(options).catch(error =>{

console.log(error)throwerror

})

}/*** 构造url的方法*/export function getUrl(url= ‘‘) {//process.env.VUE_APP_PATH为环境变量在.env文件中配置

return process.env.VUE_APP_PATH +url

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。