HarmonyOS 鸿蒙Next axios发出的请求没有Content-Length的header
HarmonyOS 鸿蒙Next axios发出的请求没有Content-Length的header
axios.request发出的请求没有Content-Length,导致服务端返回411错误
2 回复
post请求未携带请求体,可以尝试手动设置Content-Length
参考代码如下:
Button("Axios411").onClick(() => {
hilog.info(DOMAIN, TAG, 'Axios411');
axios.request<string, AxiosResponse<string, Student>>({
url: "http://10.45.198.49:3000",
method: "POST",
headers: {
"Content-Length": 0
},
data: {
name: "zhang san",
}
}).then(() => {
console.log("123")
})
})
更多关于HarmonyOS 鸿蒙Next axios发出的请求没有Content-Length的header的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙系统中,若使用axios发出的请求缺少Content-Length
的header,这通常与axios的默认配置或请求数据格式有关。
axios默认不会手动设置Content-Length
,因为这个header通常由浏览器或Node.js环境根据请求体的内容自动计算并添加。如果请求体为空或请求方法为GET(不包含请求体),则不会出现Content-Length
header。
若确实需要在POST或PUT请求中手动设置Content-Length
,可以尝试以下步骤:
- 确认请求数据是否为空或未正确设置。
- 检查axios配置,确认是否使用了如
transformRequest
等配置影响了请求体的处理。 - 如果请求数据是JSON格式,axios会默认将其转换为字符串。确保转换后的字符串长度被正确计算。
在HarmonyOS鸿蒙的特定环境下,如果axios的行为与预期不符,可能是因为环境对axios的默认行为有所修改。此时,可以尝试直接修改axios的请求配置,或使用其他HTTP库如fetch
进行请求,看是否能正确添加Content-Length
header。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html