http请求封装

53 篇文章 1 订阅
39 篇文章 0 订阅
/* 
	http 请求工具方法
 */
import { baseUrl } from '@/config/baseConfig.js' //请求地址
import msgUtils from '@/utils/msgUtils.js'

// import store from '@/store/index.js'

/* 
 * 格式化http url
 * @params {String} url 请求地址
 * @params {String} nameSpace 请求api的空间
 */
export function httpUrlFormat (url, nameSpace = 'exchange') {
	return baseUrl(nameSpace) + url
}

/* 
	发起异步请求,可以理解为不需要登录的接口
 */
export function ajaxSync(config) {
	return new Promise(function(resolve, reject) {
		const success = config.success;
		const error = config.error;
		// 发起请求
		uni.request(Object.assign(config, {
			success(data) {
				// console.log("--s-",data)
				if(data.data.code === 401){
					// msgUtils.msg("请登录");
					uni.navigateTo({
						url:`/pages/login/login?type='back'`
					})
				}
				success && success(data.data);
				resolve(data.data);
			},
			fail(data) {
				console.log(data)
				// config.showTips && msgUtils.msg(data.data.msg);
				error && error(data.data);
				reject(data.data);
			}
		}));
	});
}

/* 
	发起row格式数据请求
 */
export function ajaxForRawData(config) {
	config.header = Object.assign(config.header || {}, {
		// 'Content-Type': 'application/json; charset=UTF-8'
		'Content-Type': 'application/x-www-form-urlencoded'
	});

	if (typeof config.data === "object") {
		config.data = JSON.stringify(config.data);
	}
	return ajaxSync(config);
};

/* 
	发起需要携带校验凭证的请求:oauthAccessToken
 */
function getAuthorization(url, type, param) {
	try {
		return `Bearer ${JSON.parse(uni.getStorageSync('info')).token}`
	} catch {
		// 跳转登录页
		// uni.navigateTo({
		// 	url: '/pages/login/login?type=back'
		// });
	}
}
//可以理解为需要登录的接口
export function ajaxCarryAuthorization(config) {
	// console.log(config)
	config.header = Object.assign(config.header || {}, {
		Authorization: getAuthorization(config.url, config.method, config.data)
	});
	if (config.isRawData) {
		return ajaxForRawData(config);
	}
	return ajaxSync(config);
}

API接口js

import {
	httpUrlFormat,
	ajaxCarryAuthorization,
	ajaxSync
} from '@/utils/httpUtils.js'
const _flag = 'apiBaseUrl' // 请求的api空间

// 
export function getUser() {
	return ajaxSync({
		url: httpUrlFormat(`/user/get`, _flag),
		method: 'GET'
	})
}
// post可能需要增加header
export function setUser() {
	return ajaxCarryAuthorization({
		header: {'Content-Type': 'application/x-www-form-urlencoded'},
		url: httpUrlFormat(`/user/set`, _flag),
		method: 'POST',
	})
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值