Javascript клиент получает ответ от сервера - PullRequest
0 голосов
/ 23 июня 2018

Я заполняю форму в html и затем отправляю ее. Сначала клиент проверяет данные (например, если установлен флажок eula), а затем клиент отправляет данные на сервер. Сервер проверяет и данные возвращает мне код состояния. Как я могу получить этот код состояния с сервера?

Вот несколько примеров фрагментов

HTML

    <form name="newsletter" method="post" action="/api/newsletter" onsubmit="if(!validate()){return false;} else tryToFetch();"> 
    <input name="name" type="text" id="name"/>
    <input name="eula" type="checkbox" id="eula"/>
    <input  type="submit" name="submit"/> </form>

клиент JS:

function validate() {
    if (this.eula.checked == false) { alert ('EULA NOT ACCEPTED'); return false; } else {
        return true; }
}

tryToFetch

function tryToFetch(){
    fetch('http://localhost:3000/api/newsletter')
        .then(function(response) {
            console.log(response.status ) ;
        });
}

Server.js

app.post('/api/newsletter', urlencodedParser ,function (request, response) {
//Just check some data...
    response.statusCode = 999;
    response.send('999');
});

Теперь, как я могу получить код состояния 999 в браузере и обработать его? Можно ли вообще использовать только js?

1 Ответ

0 голосов
/ 23 июня 2018

Как написано в Документация выборки :

"Спецификация выборки отличается от jQuery.ajax () двумя основными способами:

Обещание, возвращаемое из fetch ()не будет отклонять состояние ошибки HTTP, даже если ответом является HTTP 404 или 500. Вместо этого он будет разрешаться нормально (со статусом ok, установленным в false), и будет отклоняться только при сбое сети или если что-либо помешало завершению запроса. "

Так, может быть, это вызывает твою проблему?Вы пробовали использовать XMLHttpRequest по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...