【关键字】
网络请求拦截器 / 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)
})
加密之后,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