У меня есть приложение, в котором мне нужно отправить данные формы в API. Это не работает, использую ли я JQuery, Axios или Fetch, независимо от того, какой API я запрашиваю, независимо от того, какой клиент выполняет запрос. Я решил начать с нуля, используя Typicode JSONPlaceholder, скопировав большую часть собственного примера кода, и до сих пор не могу запросить проклятый API. Кто-нибудь, пожалуйста, укажите что-нибудь.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Post Form</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script
src="https://code.jquery.com/jquery-3.3.1.min.js"
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
crossorigin="anonymous"></script>
<script>
$(() => {
$('button').on('click', () => {
let formData = {
title: $('#title').val(),
body: $('#body').val(),
userId: 0
};
fetch('https://jsonplaceholder.typicode.com/posts', {
method: 'POST',
body: JSON.stringify(formData),
headers: {
"Content-type": "application/json; charset=UTF-8"
}
})
.then(response =>
{
response.json()
})
.then(json => console.log(json))
});
});
</script>
</head>
<body>
<form>
<input placeholder="Title" id="title" />
<textarea placeholder="Body" id="body" rows="4" cols="12"></textarea>
<button>Submit</button>
</form>
</body>
</html>
Отредактировано для получения дополнительной информации: кажется, что JQuery выбирает элементы и сохраняет их значения в объекте formData. Отладчик уверяет меня в этом. И я совершенно уверен, что серверы получают запрос браузера. Я не могу говорить за сервер JSONPlaceholder, но когда я использовал свой собственный сервер, API всегда, казалось, распознавал запрос. Фактически, когда я тестирую мой API с помощью Postman, он всегда отвечает правильными данными. Но когда я пытаюсь создать клиент Javascript для отправки запроса, данные никогда не отображаются в консоли, как я спрашиваю. И никаких ошибок не отображается.