我们在生产中遇到的问题是,即使我们在标题属性中对其进行硬编码,也不会发送'Content-Length'标头,因此我们从服务器接收411长度要求错误。< / p>
我们正在使用:
导致此问题的代码如下:
let cookieJar;
const postBody = "MyBody=MyBodyContentGoesHere";
const url = "https://my-url.com";
return axios
.post(url,
postBody,
{
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
timeout: 10000,
jar: cookieJar,
withCredentials: true
}
);
我在.NET中编写了一个应用程序,并且正确发送了标头(无需手动传递)。这个.NET应用程序只是为了测试而编写的,它不是真正的应用程序。
你知道吗? 我在axios github项目中打开了一个问题,但我想向你们了解一些想法。谢谢。
答案 0 :(得分:0)
您是否尝试过添加&#34;数据&#34;字段到配置对象?
let cookieJar;
const postBody = "MyBody=MyBodyContentGoesHere";
const url = "https://my-url.com";
return axios
.post(url,
postBody,
{
data: postBody,
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
timeout: 10000,
jar: cookieJar,
withCredentials: true
}
);
答案 1 :(得分:0)
我和你有同样的问题。根据{{3}}的建议使用querystring
为我解决了这个问题。
'use strict';
let querystring = require('querystring');
let cookieJar;
const postBody = querystring.stringify({ MyBody: 'MyBodyContentGoesHere' });
const url = 'https://my-url.com';
return axios.post(url, postBody, {
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
timeout: 10000,
jar: cookieJar,
withCredentials: true
}
);