uni-app两种方法解决跨域问题
第一种:在项目根目录下(即跟App.vue同级)建vue.config.js,这个文件会默认优先加载module.exports = {devServer:{port:'8080',disableHostCheck:true,proxy:{'/dpc':{target:'http://XXXXX:9088',changeOrigin:true,pathRewrite:{'^/dpc': ''}}}
·
第一种:在项目根目录下(即跟App.vue同级)建vue.config.js,这个文件会默认优先加载
module.exports = {
devServer:{
port:'8080',
disableHostCheck:true,
proxy:{
'/dpc':{
target:'http://XXXXX:9088',
changeOrigin:true,
pathRewrite:{
'^/dpc': ''
}
}
}
}
}
第二种:在manifest.json的代码视图中 根节点中(即{}中),做如下声明
"h5": {
"devServer": {
"port": 8080, //浏览器运行端口
"disableHostCheck": true,
"proxy": {
"/dpc": {
"target": "XXXXXX:9088", //实际请求服务器地址
"changeOrigin": true,
"secure": true,
"pathRewrite": {
"^/dpc": ""
}
}
}
}
最后在你统一的网络请求中做如下判断即可:
var BASE_URL = 'http:XXXXXX:9088'; //不是h5默认这个地址
// #ifdef H5
BASE_URL = '/dpc'; //H5下将地址修改为/dpc
// #endif
//附上网络请求的封装
export default (options)=>{
uni.showLoading({
title:'加载中...'
})
return new Promise((resolve,reject) =>{
uni.request({
url:BASE_URL + options.url,
method:options.method || 'GET',
data:options.data || {},
success(res) {
if(res){
resolve(res.data)
}
},
fail(err) {
reject(err)
},
complete() {
uni.hideLoading()
}
})
})
}
更多推荐
已为社区贡献1条内容
所有评论(0)