Ajax не работает - PullRequest
       3

Ajax не работает

0 голосов
/ 09 декабря 2018

Так что у меня странная проблема.Я сделал небольшое приложение на своей машине, которое отлично работает, но когда я загружаю на школьный сервер, оно перестает работать.То, что я делаю, это доступ к данным JSON с помощью AJAX.Я проверил и получаю правильные ответы JSON, я подключаюсь к базе данных очень хорошо, и AJAX запускается каждые две секунды, как и должно.Но код в разделе успеха Ajax никогда не запускается.База данных на сервере идентична базе данных на моем компьютере, соединение было устранено и работает замечательно, но код успеха ajax не работает.Заранее спасибо!

setInterval(function () {
            $.ajax({
                type: 'GET',
                url: 'JSONFile.php',
                dataType: 'json',
                success: function (retrieved) {
                    $.each(retrieved, function (index, i) {
                         alert('This line of code is the problem. This alert does not run but should');
                    });
                }
            });
        }, 2000);

Ответы [ 2 ]

0 голосов
/ 09 декабря 2018

Если это еще не сделано, убедитесь, что файл PHP возвращает ответ JSON с сервера.AJAX настроен на связь с сервером в формате JSON, и если сервер не отвечает таким образом, AJAX не будет считать ответ успешным.

Проверьте Возвращение JSON из PHP в JavaScript?.

Обновление:

Попробуйте запустить следующий код, открыв Инструменты разработчика браузера.Как только приложение остановится на точке останова, проверьте data в браузере и посмотрите, что у вас есть.Скорее всего, это строка в формате JSON, это означает, что вам нужно будет проанализировать ее, чтобы иметь возможность перебирать ее элементы.

success: function(data){
    debugger; // inspect the returned data
    var obj = JSON.parse(data); // returned data is a string and so, to work on it, it needs to be parsed
    $.each(obj, function (index, i) {
        $('<div class="Post"><h2>' + i.UserName + '</h2><p>' + i.Content + '</p></div>').prependTo($('#MainContent')).fadeOut(1).fadeIn(1000); }
    );
}
0 голосов
/ 09 декабря 2018

jQuery 3 кодируется с использованием done , fail и всегда

// Assign handlers immediately after making the request,
// and remember the jqXHR object for this request
var jqxhr = $.ajax( "example.php" )
  .done(function() {
    alert( "success" );
  })
  .fail(function() {
    alert( "error" );
  })
  .always(function() {
    alert( "complete" );
  });

https://api.jquery.com/jQuery.ajax/

Примечание об устаревании: обратные вызовы jqXHR.success (), jqXHR.error () и jqXHR.complete () удалены с jQuery 3.0.Вместо этого вы можете использовать jqXHR.done (), jqXHR.fail () и jqXHR.always ().

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