uniapp 打包 h5 跨域问题使用封装的request以及部署二级目录问题

a、在manifest.json-源码视图加上如下代码

"h5" : {
        "publicPath" : "./",    // 部署到二级目录
        "devServer" : {
            "port" : 80,
            "disableHostCheck" : true,
            "proxy" : {
                "/vjian" : {
                    "target" : "https://xxxxx/vjian",
                    "changeOrigin" : true,
                    "secure" : false,
                    "pathRewrite" : {
                        "^/vjian" : ""
                    }
                }
            }
        },
         // 图片地址指向二级目录
        "router" : {
            "base" : "./"
        },
        "title" : "xxx",
        "domain" : "xxx"
    }

b、由于我用了封装的request,并没有使用原生uni.request,故而还需要在封装的请求里设置

import Request from './request'

const http = new Request();
http.setConfig((config) => { /* 设置全局配置 */
	config.baseUrl = 'https://xxxx/vjian'; /* 根域名不同 */
	// #ifdef H5
	config.baseUrl = '/vjian/'; /* h5 - h5单独设置根域名不同 */
	// #endif
	config.header = {
		Timestamp: new Date().getTime(),
	    'Content-Type': 'application/x-www-form-urlencoded'	,	// formdata格式
		'Access-Control-Allow-Origin': '*'
	}
	return config
})
http.interceptor.request((config, cancel) => { /* 请求之前拦截器 */
	uni.showLoading({ title: '加载中', mask: true });
	var authorization = 'noget';
	try {
	    var value = uni.getStorageSync('authorization');
	    if (value) {
			authorization = value ? value.token : 'noget';
	    }
	} catch (e) {
	    // error
	}
	config.header.Authorization = authorization
	// config.header.Cookie = "loginToken=" + authorization
	config.header = {
		...config.header,
	}
	/*
	if (!token) { // 如果token不存在,调用cancel 会取消本次请求,但是该函数的catch() 仍会执行
		cancel('token 不存在') // 接收一个参数,会传给catch((err) => {}) err.errMsg === 'token 不存在'
	}
	*/
	return config;
})
http.interceptor.response((response) => { /* 请求之后拦截器 */
	uni.hideLoading();
	// console.log(response);
	if(response.data.state === 1000){
		uni.showModal({
		    title: '提示',
		    content: response.data.message,
			showCancel: false,
		    success: function (res) {
		        if (res.confirm) {
		            uni.redirectTo({ url: '/pages/login/login' });
		        }
		    }
		});
	}
	return response;
})
export {
	http
};


 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值