Делаю по официальной документации:
https://facebook.github.io/react-native/docs/networkconst response = fetch(
"<PLACE POST REQUEST URL HERE>", {
method: 'POST',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
key1: 'value1',
key2: 'value2',
}),
})
.then((response) => { return response.json() } )
.catch((error) => console.warn("fetch error:", error))
.then((response) => {
console.log(JSON.stringify(response));
})
POST запрос передается, но голый
без параметров.
Нагуглил какое-то странное решение. Вот такое:
//POST json
var dataToSend = {title: 'foo', body: 'bar', userId: 1};
//making data to send on server
var formBody = [];
for (var key in dataToSend) {
var encodedKey = encodeURIComponent(key);
var encodedValue = encodeURIComponent(dataToSend[key]);
formBody.push(encodedKey + "=" + encodedValue);
}
formBody = formBody.join("&");
//POST request
fetch('https://jsonplaceholder.typicode.com/posts', {
method: "POST",//Request Type
body: formBody,//post body
headers: {//Header Defination
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
},
})
.then((response) => response.json())
//If response is in json then in success
.then((responseJson) => {
alert(JSON.stringify(responseJson));
console.log(responseJson);
})
//If response is not in json then in error
.catch((error) => {
alert(JSON.stringify(error));
console.error(error);
});
Оно работает. POST запрос с параметрами передается.
Почему?
Как правильно?