У меня есть следующий код:
window.fetch(myServerURL, {
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
method: "POST",
body: JSON.stringify(app.jsonRequest)
})
.then(res => res.json())
.then(json => {
if (json.affectedRows === 1) {
okMessage("Be welcome and check your email!");
} else {
errorMessage('Sorry! Please try again later.');
}
})
, который имеет право отправлять сообщение на мой сервер и регистрировать нового пользователя в моей системе, используя базу данных MySQL. И это работает нормально, но мои сообщения не отображаются.
(Да, я должен проверить больше, чем просто json.affectedRows
, чтобы убедиться, что регистр был вставлен правильно, но я упрощаю проблему, чтобы прояснить ситуацию здесь.)
Это происходит, когда я обнаруживаю OPTIONS запроса предполета, и это заставляет мою логику сбить с толку, потому что кажется, что он получает ответ OPTIONS первым и НЕ имеет затронутых строк для сравнения. Фактически, запрос OPTIONS генерирует только OK
, поскольку на стороне сервера настроено CORS.
С другой стороны, когда я пишу
.then(json => {
console.log(json);
}
чтобы попытаться перехватить этот OK
ответ на запрос OPTIONS, ответ будет
{"fieldCount":0,"affectedRows":1,"insertId":1845,"serverStatus":2,"warningCount":0,"message":"","protocol41":true,"changedRows":0}
как будто не было запроса OPTIONS.
Попробовав другие возможные решения, но безуспешно, я хотел бы спросить вас, как мне быть с этим, чтобы мои сообщения отображались?