Почему этот код, использующий ajax для обновления div с {{data}}, не запускается каждые 250 миллисекунд? - PullRequest
0 голосов
/ 06 февраля 2019

Почему

      function ajax_(){
        $.ajax({url: "/chat", method: 'POST', success: function(){
          document.getElementByID("msgs").innerHTML = "";
          for (i = 0; i < parseInt("{{data|length}}"); i++) {
            document.getElementByID("msgs").innerHTML += "<p>" + "{{data[-1]}}" + "</p>"
          };
        }, error: function(){console.log("Error!")}});
      };
      setInterval(function(){ ajax_(); }, 1000);

не обновляет div с {{data}}?

Я делаю это неправильно?

repl: https://repl.it/@aceharvey/hy-dev

РЕДАКТИРОВАТЬ: заменили alert () на console.log ().

EDIT: повысили время, чтобы его каждую секунду.

EDIT: после исправления глупых ошибок кода, этовозвращая 405. Что я сделал не так?

РЕДАКТИРОВАТЬ: 405 Исправлено, но теперь ничего не происходит

РЕДАКТИРОВАТЬ: отсутствует} Исправлено, но теперь ошибка 400

РЕДАКТИРОВАТЬ: длинная строкаправок, теперь вопрос технически другой, поэтому я открыл новый: Почему POST-скрипт JQuery ajax выдает ошибку 400?

1 Ответ

0 голосов
/ 06 февраля 2019

Ваша проблема заключается в следующем:

getElementByID("msgs").innerHTML += ("<p>" + "{{data[-1]}}" + "<p>");

Возможно, вы хотите использовать data в качестве переменной.Поэтому попробуйте это:

function(data) {
  getElementByID("msgs").innerHTML += ("<p>" + data[data.length-1] + "<p>");
  getElementByID("msgs").innerHTML += ("<br><br>");
},

, это будет использовать data, возвращаемое вызовом ajax, и вставить последний элемент результата как элемент <p> в конце элемента msgs.

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