HarmonyOS 鸿蒙Next 在使用axios进行post请求发送参数后台nginx无法获取参数,尝试设置contentType也无法获取到

发布于 1周前 作者 ionicwang 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 在使用axios进行post请求发送参数后台nginx无法获取参数,尝试设置contentType也无法获取到

// post请求 \ post(url:string,map?:Map<string,string>,isList?:string){ axios.defaults.headers.post[‘Content-Type’] = ‘application/x-www-form-urlencoded’; return axios<NormalResultModel,AxiosResponse<NormalResultModel>>({ url: url, method: ‘post’, params: CryptoUtils.mapToObject(map), headers: CryptoUtils.signRequest(BuildProfile.REQUEST_SIGN_AGENT,BuildProfile.REQUEST_SIGN_SECRET,map), }).then((res: AxiosResponse<NormalResultModel>) => { let status = res ? res.status : ‘’; let message = res ? JSON.stringify(res.data) : ‘’; let code =res.data.code let  data =res.data.data if (code!=0){ ToastUtil.showShort(data as string) } if (‘list’==isList) { return ( data as ListDataModel).list; }else { return data; } }).catch((err: AxiosError) => { // 如果是token过期或者格式错误的异常则重新刷新token let jwtExpired = “security_005” let jwtFormatError = “security_006” let errCode=err.code let status = ‘’; let message = err.message; let endTime = new Date().getTime(); return message; }); }

1 回复

针对您提到的HarmonyOS鸿蒙Next系统上使用axios进行POST请求时,后台nginx无法获取参数的问题,这通常与请求头的Content-Type设置及请求体编码有关。

首先确认您的axios请求中Content-Type设置正确。如果是发送JSON格式数据,应确保Content-Typeapplication/json。例如:

axios.post('url', {data: {...}}, {
  headers: {'Content-Type': 'application/json'}
});

其次,检查nginx配置是否支持解析该Content-Type。nginx默认配置下,对application/json类型的数据不会自动解析到$arg_变量中,因为$arg_变量通常用于解析URL中的查询参数(即?key=value形式)。对于POST请求的body内容,nginx需要通过lua-nginx-module或其他方式处理。

确保nginx配置中有相应的解析逻辑,或者后端服务能够正确读取请求body并解析JSON。如果nginx作为反向代理,还需检查其转发配置是否正确。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部