Успех Ajax в зависимости от ответа в теле ответа - PullRequest
0 голосов
/ 25 марта 2019

Я работаю над проектом и понял, что боковая загрузка с помощью ajax - это путь, к сожалению, у меня больше состояний, чем OK и Ошибка.

Ситуация следующая:

Когда я загружаю часть страницы с помощью ajax, а сайт ответов пуст, это нормально, и все работает как надо.

Однако, когда ответ помечен предупреждением, мне нужно распечатать его на экране. Думаю, ничего особенного.

Это код, с которым я работаю:

В целях тестирования я хотел бы напечатать все, что есть в ответе моего /backend/posthourssingle на диапазон с идентификатором alert_saveinfo_{{ ma.persnr }}. Работа с переменной Twig работает, у меня есть span и вывод "res:" без содержимого из /backend/posthourssingle. При проверке элемента с помощью сетевого инструмента, например, Chrome, я могу видеть ответ в виде текста HTML.

<script>
  $("#submit_{{ ma.persnr }}").click(function(e) {
    e.preventDefault();
    var json = $("#formtosubmit{{ ma.persnr }}").serialize();

    $.ajax({
      type: 'POST',
      datatype: 'json',
      url:'/backend/posthourssingle',
      data: json,
      success:function(result) { 
        response = result;
        //document.getElementById('alert_saveinfo_{{ ma.persnr }}').innerHTML = '"res:' + response + '"';

        showToast('success', 'Datensatz wird gespeichert!', 'Daten von <b>{{ ma.vorname }} {{ ma.nachname }}</b> ({{ ma.persnr }}) wurden in der Datenbank gespeichert.');
        // showToast('warning', 'Warning Head!', 'Warning Text.');
      }
    })

  });
</script>

1 Ответ

1 голос
/ 25 марта 2019

Если вам нужно получить HTML с сервера, вам нужно указать dataType: 'html', а не json. См. ajax документацию

dataType (по умолчанию: Intelligent Guess (xml, json, script, or html))
Тип: Строка
Тип данных, которые вы ожидаете от сервера ...
"html": возвращает HTML в виде обычного текста; включенные теги сценария оцениваются при вставке в DOM.

$.ajax({
      type: 'POST',
      contentType: 'json'
      dataType: 'html',
      url:'/backend/posthourssingle',
      data: json,
      success:function(result) { 
        response = result;
        //document.getElementById('alert_saveinfo_{{ ma.persnr }}').innerHTML = '"res:' + response + '"';

        showToast('success', 'Datensatz wird gespeichert!', 'Daten von <b>{{ ma.vorname }} {{ ma.nachname }}</b> ({{ ma.persnr }}) wurden in der Datenbank gespeichert.');
        // showToast('warning', 'Warning Head!', 'Warning Text.');
      }
    })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...