如何使用 formData 在 React Native 中执行 post 请求
How to do a post request in ReactNative with formData
我需要用 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 中成功,但未能获取 return 没有参数的 400 错误。希望有所帮助,谢谢
所以我更改了我的代码
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
我的 headers 键是错误的,那是错误
应该是:
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
}
状态代码 400 表示您发送了一个错误的请求,即服务器期望其他内容。
在这种情况下,您发送原始 multipart/form-data
(Postman 中的第一个选项),而您说您在 headers.
中发送 x-www-form-urlencoded
根据您的 Postman 屏幕截图,您需要使用后者,因此您必须以 x-www-form-urlencoded
格式发送您的 body。
我需要用 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 中成功,但未能获取 return 没有参数的 400 错误。希望有所帮助,谢谢
所以我更改了我的代码
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
我的 headers 键是错误的,那是错误
应该是:
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
}
状态代码 400 表示您发送了一个错误的请求,即服务器期望其他内容。
在这种情况下,您发送原始 multipart/form-data
(Postman 中的第一个选项),而您说您在 headers.
x-www-form-urlencoded
根据您的 Postman 屏幕截图,您需要使用后者,因此您必须以 x-www-form-urlencoded
格式发送您的 body。