收藏
回答

自定义请求头在手机微信小程序中出现了两个,是微信的bug还是我的问题?

这是使用开发工具手机调试出现的,

微信电脑端小程序和开发工具自定义都只会显示一个,手机上的就会出现这个问题导致无法获取到正确的值

回答关注问题邀请回答
收藏

6 个回答

  • Van
    Van
    06-27

    看一下 自己生成的token是不是最后有回车符,我碰到了这个问题排查好久才解决。

    06-27
    有用
    回复 1
    • Van
      Van
      06-27
      有回车符,会在header里面显示有2个相同属性,一个有值,一个没值,最后在后台拿不到token
      06-27
      回复
  • 疯鸽
    疯鸽
    2023-07-24
    function getMicroservicesData(requestUrl, params, requestType, microservicesObj{
        return new Promise((resolve, reject) => {
            console.log('---------->网络请求:' + requestUrl + ',参数:' + JSON.stringify(params))
            const startTime = new Date().getTime()
            const serviceNameList = (microservicesObj.microUrl).split("/")
            const serviceName = serviceNameList[serviceNameList.length-1]
            let header = {
                'content-type''application/json;charset=UTF-8'// 默认值
                'Accept''application/json, text/plain, */*'// 默认值
                'App-Authentication': microservicesObj.appAuthentication,
                'App-Service-Provider': microservicesObj.appServiceProvider,
                'Authorization': microservicesObj.authorization,
                'Graphql-SchemaName': microservicesObj.graphqlSchemaName,
                'Origin': microservicesObj.platformUrl,
                'Referer': microservicesObj.platformUrl,
                'Service-Name': serviceName,
            }
            wx.request({
                url: requestUrl,
                method: requestType,
                header: header,
                data: params,
                successfunction (res{
                  const endTime = new Date().getTime()
                    console.log('---------->请求时间:' + (endTime - startTime) + '毫秒;请求接口:' + requestUrl)
                    console.log('---------->返回结果:' + JSON.stringify(res.data))
                    if (res) {
                        if (res.statusCode == 200) {
                          debugger
                            if (type != undefined) {
                                let resultData = { head: { code200message'提交成功!' }, data: {} }
                                resolve(resultData)
                            } else if (type == undefined && res.data.head === undefined) {
                                //返回数据的结构不合法
                                let resultData = { head: { code300message'请求失败' }, data: {} }
                                resolve(resultData)
                            } else {
                                if (requestUrl.indexOf('mobile/home')==-1){
                                    putCookie(requestUrl, res)
                                }
                                resolve(res.data)
                            }
                        } else if (type != undefined && res.data.code == 500) {
                          debugger
                            let resultData = { head: { code200message: res.message }, data:300 }
                            resolve(resultData)
                        } else if (type != undefined && res.data.code == 501) {
                          debugger
                            let resultData = { head: { code200message: res.message }, data:301 }
                            resolve(resultData)
                        } else if (res.statusCode == 401) { //未登录
                          debugger
                            let resultData = { head: { code401message'请求失败,没有权限' }, data: {} }
                            resolve(resultData)
                            //删除COOKIE缓存
                            clearCookies()
                            // 登录过期 loginTimeoutPage
                            var appConfig = getApp().config
                            var pages = getCurrentPages()    //获取加载的页面
    
    
                            var currentPage = pages[pages.length - 1]    //获取当前页面的对象
    
    
                            var url = '/'+currentPage.route    //当前页面url
                            if (url != appConfig.loginTimeoutPage){
                                wx.reLaunch({
                                    url: appConfig.loginTimeoutPage
                                })
                            }
                        } else {
                          debugger
                            let resultData = { head: { code300message'请求失败' }, data: {} }
                            resolve(resultData)
                        }
                    } else {
                      debugger
                        console.log('网络访问失败:' + JSON.stringify(res))
                        let resultData = { head: { code300message'网络访问失败:' }, data: {} }
                        resolve(resultData)
                    }
                },
                failfunction (res{
                  debugger
                    console.log('网络访问失败:' + JSON.stringify(res))
                    let resultData = { head: { code300message'网络访问失败:' }, data: {} }
                    resolve(resultData)
                },
                completefunction (res{ }
            })
        })
    }
    真机:
    

    开发者工具:
    

    真机存在重复值,求解决!@官方

    2023-07-24
    有用
    回复
  • 🇲 🇷 🇱 🇺 🇴
    🇲 🇷 🇱 🇺 🇴
    2023-03-07

    你这里不是设置了俩次token吗

    2023-03-07
    有用
    回复 1
    • 小小修真者
      小小修真者
      2023-03-07
      只是设置了两个自定义请求头,你看下截图的有两个token,和两个authorization,且有一个是空,后台获取authorization的时候不知道为什么就是空
      2023-03-07
      回复
  • showms
    showms
    2023-03-06

    其实在移动端比如体验版抓包看没问题就行了

    2023-03-06
    有用
    回复 1
    • 小小修真者
      小小修真者
      2023-03-07
      现在就是有问题,后台不知道为什么请求头获取为空
      2023-03-07
      回复
  • 小小修真者
    小小修真者
    2023-03-06
    uni.request({
    			url,
    			method: 'POST',
    			header: {
    				'Content-type': 'application/json',
    				'Authorization': token,
    				'token': token
    			},
    			data,
    			success({ data }) {
    				if (data.success) {
    					resolve(data.data)
    				} else {
    					uni.showToast({
    						title: data.message,
    						icon: 'none'
    					})
    					reject(data)
    				}
    			},
    			fail(e) {
    				uni.showToast({
    					title: e.message,
    					icon: 'none'
    				})
    			}
    		})
    使用的uniapp,3.7.3.20230223
    
    2023-03-06
    有用
    回复
  • TNT
    TNT
    2023-03-06

    目前其他人都没出现过该问题,那应该是你代码的问题,可以贴下代码么?

    2023-03-06
    有用
    回复
登录 后发表内容