最近公司做一个app,用uniapp把h5打包成app..

和后台对接口的时候遇到了一个坑,将近解决了一天,话不多说,进入主题。。

首先需要必须必须注意的一点就是:

uniapp写 h5 不 支 持 设 置 请 求 头

举个例子,后台同样的接口,在某种格式下,你用vscode写pc,可以用,但是你用uniapp写 h5就不行,这个时候你需要用HBuilder X的内置浏览器启动你的项目,然后在你的请求上设置请求头:

            header: {
                'content-type': 'application/x-www-form-urlencoded'
            },

然后再uniapp的内置浏览器模式下就可以正常请求了..

下面是封装好的请求,CV直接用

export const http = (options) => {
    return new Promise((resolve,reject) => {
        uni.request({
            url: setting.apiBaseUrl + options.url,
            method: options.method || 'GET',
            data: options.data || {},
            header: {
                'Authorization':uni.getStorageSync('Authorization'),
                'content-type': 'application/x-www-form-urlencoded',
            },
            timeout:5000,
            success: (res) => {
                    if (res == '') {
                    return uni.showToast({
                        icon: 'loading',
                        title:'获取数据失败'
                    })
                }else if(res.data.code==703){
                    return uni.showModal({
                        title: '提示',
                        content: '登录信息已过期,请重新登录',
                        success: function (res) {
                            if (res.confirm) {
                                uni.navigateTo({
                                    url:'/pages/login/login'
                                })
                            } else if (res.cancel) {
                               uni.navigateTo({
                                   url:'/pages/login/login'
                               })
                            }
                        }
                    });
                }
                resolve(res)
            },
            fail: (err) => {
                return uni.showToast({
                    icon: 'loading',
                    title:'请求失败'
                })
                reject(err)
            }
        })
    })
}

over

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐