Я следовал точному коду, который был упомянут в документации JSONPlaceholder об отправке запроса POST, который:
fetch('https://jsonplaceholder.typicode.com/posts', {
method: 'POST',
body: JSON.stringify({
title: 'foo',
body: 'bar',
userId: 1
}),
headers: {
"Content-type": "application/json; charset=UTF-8"
}
})
.then(response => response.json())
.then(json => console.log(json))
// Output
{
id: 101,
title: 'foo',
body: 'bar',
userId: 1
}
Мой код - (я просто не включил заголовки, которые, по моему мнению, не являются причиной ошибки PS - Даже если я включу заголовки, проблема все еще сохраняется.)
const sendHttpRequest = function (url, httpMethod, title, content) {
if (httpMethod === 'GET') {
return fetch(url, {
method: httpMethod,
});
} else if (httpMethod === 'POST') {
// not working
fetch(url, {
method: httpMethod,
body: JSON.stringify({
title: title,
body: content,
userId: Math.random(),
}),
});
}
};
const sendPost = function (event) {
event.preventDefault();
const title = document.getElementById('title').value;
const content = document.getElementById('content').value;
sendHttpRequest(
'https://jsonplaceholder.typicode.com/posts',
'POST',
title,
content
);
};
Ошибка -
Доступ к выборке в 'https://jsonplaceholder.typicode.com/posts' из источника 'null' был заблокирован политикой CORS: в запрошенном ресурсе отсутствует заголовок 'Access-Control-Allow-Origin'. Если непрозрачный ответ соответствует вашим потребностям, установите режим запроса на 'no-cors', чтобы получить ресурс с отключенным CORS. POST https://jsonplaceholder.typicode.com/posts net :: ERR_FAILED