Почему вызов JQuery AJAX возвращает неопределенный объект?

Я выполнил вызов jquery ajax для сценария php-сервера, но обнаружил сообщение об ошибке, сообщающее мне, что возвращаемые данные типа JSON не определены. . . Итак, как решить эту проблему? Вот вызов jquery ajax:

    $.ajax({
                url: 'listWorkProcess.php',
                method: 'post',
                data: data,
                success: function(feedback){
                    $.parseJSON('feedback');
                    console.info(feedback);// loged correctly
                    alert(feedback.message);//here is the undefined message
                    $('#table').html(feedback.row_html);//this not executed Why?
                }   
            });//end of ajax

Возникает вопрос: возвращенный JSON не определен при попытке доступа к одному элементу JSON, даже если использовалась функция синтаксического анализа jquery !!!

Osahady 27.10.2018 23:56

можете ли вы предоставить снимок экрана с ответом, который вы получаете в консоли?

Santu Roy 28.10.2018 00:04
Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
0
2
1 179
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы передаете parseJSON только строку. Вам нужно назначить его чему-то и использовать полученные данные, например:

            success: function(feedback){
                var data = $.parseJSON(feedback);
                console.info(data);// loged correctly
                alert(data.message);//here is the undefined message
                $('#table').html(data.row_html);//this not executed Why?
            } 

Проще просто установить dataType:'json', тогда не нужно его анализировать, будет выполнено внутренне, и, что важно, любой недопустимый json вызовет обработчик ошибок

charlietfl 28.10.2018 00:04
Ответ принят как подходящий

Попробуйте этот код AJAX:

В вашем коде требуется небольшое изменение, это изменение включает "dataType = 'json'" в коде AJAX, как показано ниже.

$.ajax({
    url: 'listWorkProcess.php',
    dataType:"json",
    method: 'post',
    data: data,
    success: function(feedback){
        console.info(feedback);// loged correctly
        alert(feedback.message);//here is the undefined message
        $('#table').html(feedback.row_html);//this not executed Why?
    }   
});

Это простой способ получить ответ, который задается в контроллере в виде jsonencode formate, просто передайте dataType: 'json' коду AJAX.

Другие вопросы по теме