我需要用fetch做一个post请求 像这样 in Postman
我尝试过的事情:
let formData = new FormData();
formData.append('username', String(username));
formData.append('password', String(password));
let init = {
method: 'POST',
header:{
'Content-Type': 'application/x-www-form-urlencoded'
},
body: formData
}
fetch(url, init)
它在Postman中取得了成功,但是在没有param的情况下返回400错误的fetch失败了。希望有所帮助,谢谢
所以我改变了我的代码
var details = {
'username': '123',
'password': '123',
};
var formBody = [];
for (var property in details) {
var encodedKey = encodeURIComponent(property);
var encodedValue = encodeURIComponent(details[property]);
formBody.push(encodedKey + "=" + encodedValue);
}
formBody = formBody.join("&");
let init = {
method: 'POST',
header:{
'Accept': 'application/json',
'Content-Type': 'application/x-www-form-urlencoded'
},
body: formBody
}
fetch(url, init)
但得到同样的错误
控制formBody:
username=123&password=123
我的标题密钥错误,这是错误
应该是:
let init = {
method: 'POST',
headers:{
'Accept': 'application/json',
'Content-Type': 'application/x-www-form-urlencoded'
},
body: formBody
}
而不是
let init = {
method: 'POST',
header:{
'Accept': 'application/json',
'Content-Type': 'application/x-www-form-urlencoded'
},
body: formBody
}
答案 0 :(得分:0)
状态代码400表示您发送了错误请求,即服务器需要其他内容。
在这种情况下,您发送原始x-www-form-urlencoded
(邮递员中的第一个选项),而您说您在标题中发送x-www-form-urlencoded
。
由于您希望根据Postman屏幕截图使用后者,因此您必须以{{1}}格式发送您的正文。