HarmonyOS 鸿蒙Next:网络请求拦截器中return之后跳到error里面,报错target must be an object
HarmonyOS 鸿蒙Next:网络请求拦截器中return之后跳到error里面,报错target must be an object
【关键字】
网络请求拦截器 / return / target must be an object
【问题描述】
网络请求拦截器的关键代码如下:
axiosClient.interceptors.request.use( async (config: InternalAxiosRequestConfig) => { config.headers[‘X-APP-PLAT’] = ‘HarmonyOS’; config.headers[‘X-APP_VERSION’] = BuildProfile.VERSION_CODE.toString(); config.headers[‘deviceCode’] = util.generateRandomUUID(); config.headers[‘deviceType’] = deviceInfo.deviceType; config.headers[‘deviceName’] = deviceInfo.brand; config.headers[‘deviceDetail’] =
${deviceInfo.brand}-${deviceInfo.marketName}-${deviceInfo.displayVersion}
; if (isNeedEncrypt(config.url)) { let requestId = RandomUtil.randomInt().toString() let requestData = await encryptData(config.params.toString(), requestId) config.params = requestData config.headers[‘X-AUTH-TOKEN’] = ‘******twuEW3CYrNjR4L1CEvZMI38sda1x2gb9yFmKxQlw9wAqnGfVGGxh3ZtkK0’; config.headers[‘X-AUTH-USERID’] = ‘**634411’; config.headers[“requestId”] = requestId return config } else { return config }
}, (error: AxiosError) => { return Promise.reject(error) })
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
加密之后,return config 然后就跳到了 error里面了,然后报target must be an object。target must be an object 报错,这个target不清楚是哪里返回出来的。
【解决方案】
关于“网络请求拦截器”的使用,请参考链接:https://gitee.com/openharmony-sig/ohos_axios#%E6%8B%A6%E6%88%AA%E5%99%A8
更多关于HarmonyOS 鸿蒙Next:网络请求拦截器中return之后跳到error里面,报错target must be an object的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS开发中,如果你在网络请求拦截器中遇到return
之后跳转到error
处理,并且报错“target must be an object”,这通常表明你尝试调用的方法或访问的属性所在的上下文(target)不是一个有效的对象。
请检查以下几点:
- 确保
return
语句之后没有执行到错误的代码路径,特别是不要错误地触发错误处理。 - 验证所有涉及的对象(如响应体、请求体等)在使用前已正确初始化且不为
null
或undefined
。 - 检查是否有库或框架的特定要求或限制,特别是关于错误处理和拦截器的部分。
如果问题依旧没法解决请加我微信,我的微信是itying888。
更多关于HarmonyOS 鸿蒙Next:网络请求拦截器中return之后跳到error里面,报错target must be an object的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html