V
V
Vadim Rublev2020-10-13 11:35:55
JavaScript
Vadim Rublev, 2020-10-13 11:35:55

How to distinguish in JS different variants of the Go server response (per AJAX request)?

How to distinguish in JS in the browser server response options (on a single AJAX request), and put them in the appropriate place-tag of the HTML document?
HTML:

<form>
    <span>Введите дату:</span>
    <input />
    <span id="span_1"></span>   <!-- Здесь ответ-вариант_1 сервера. -->
    <span id="span_2"></span>   <!-- Здесь ответ-вариант_2 сервера. -->
    <button type="submit">Отправить</button>
</form

JS:
// AJAX-отправка данных_формы на сервер.
...
    form.addEventListener('submit', function(event) {
        xhr.onloadend = function() {
            if (xhr.status === 200) {
      // robot-doc. При успешном ответе сервера записываем содержимое ответа в тег:
                document.querySelector('#span_1').innerHTML = xhr.response;   // В этот тег надо записать "ответ-вариант_1", если сервер отдал его.
                или
                document.querySelector('#span_2').innerHTML = xhr.response;   // В этот тег надо записать "ответ-вариант_2", если сервер отдал его.
            }
            xhr.open('POST', '/routForm');
        }
    });

go:
// Маршрут-приёмник данных формы.
http.HandleFunc("/routForm", func(w http.ResponseWriter, r *http.Request) {
    ...Проверка условий, по итогу которой выдаётся значение:
    if итог=ответ-вариант_1 {
        // возвращаем браузеру ответ-вариант_1
        var dataRespon_1 = "ответ-вариант_1"
        var goRespon, _ = template.New("data_resp").Parse("{{ .}}")
        goRespon.Execute(w, dataRespon_1)
    } else {
        // возвращаем браузеру ответ-вариант_2
        var dataRespon_2 = "ответ-вариант_2"
        var goRespon, _ = template.New("data_resp").Parse("{{ .}}")
        goRespon.Execute(w, dataRespon_2)
    }
})

Answer the question

In order to leave comments, you need to log in

1 answer(s)
I
Ivan Shalganov, 2020-10-14
@Aco

JSON response from the server, where the response code will be indicated, which can be used as the id of the html element. If there is no way to change the response body, send it as the response header.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question