UniApp の H5 クロスドメイン APP とミニプログラムがドメインを越えない問題の解決策

UniApp の H5 クロスドメイン APP とミニプログラムがドメインを越えない問題の解決策

ローカル デバッグ モードでは、H5 クロスドメイン リクエストを解決するためにプロキシ メソッドが使用されますが、モバイル APP および WeChat アプレットで実行している場合、データをリクエストできません。これは、uni.request で APP と WeChat アプレットが次の処理を行う必要があるためです。完全なアドレスを入力してください。WeChat
アプレットの場合は、忘れずに WeChat プラットフォームにログインし、有効な https アドレスを入力してください。

条件付きコンパイルの判定方法を使って別途記述したコードは以下の通りです

export const env = 'dev'
export const HdefBaseUrl = '/api' //H5
export const WdefBaseUrl = env == 'dev' ? 'http://192.168.2.46:8088' : '线上地址' //微信小程序

/**
 *
 * @param {*} { baseUrl = defBaseUrl, url = '', method = 'GET', header, data, option = {} }
 * @return {*}
 */
const request = ({
	url = '',
	method = 'GET',
	header,
	data = {},
	option = {},
	hiddenMsg = false
}) => {
	// let token = uni.getStorageSync('token') || '233e4dd0158ee47dfe5c66c95b408ee3'
	// header = Object.assign({
	// 		token
	// 	},
	// 	header
	// )
	return new Promise((resolve, reject) => {
		// showLoading()
		uni.request({
			// #ifdef H5
			url: HdefBaseUrl + url,
			// #endif
			// #ifndef H5
			url: WdefBaseUrl + url, // 非H5端即微信小程序或App
			// #endif
			method,
			header,
			data: data,
			sslVerify: false,
			...option,
			success: response => {
				let {
					data
				} = response
				resolve(data)
			},
			fail: msg => {
				uni.showToast({
					title: msg,
					icon: 'none'
				})
				reject('fail请求失败' + JSON.stringify(msg))
			}
		})
	})
}

export default request

            // #ifdef H5
            url: HdefBaseUrl + url,
            // #endif
            // #ifndif H5
            url: WdefBaseUrl + url, // 非 H5 端末は WeChat アプレットまたはアプリです
            // #endif
 

おすすめ

転載: blog.csdn.net/Achong999/article/details/130420623