Ajax-вызов для отображения переменной PHP

0

Мне кажется, что я делаю ошибку noob здесь, но это раздражает меня, так что, я думаю, я опубликую!

Я пытаюсь получить message в массиве php для входа в консоль. Фактически это происходит, данные ничего не возвращают, сообщение возвращает "успех", а data.message не определен.

JavaScript:

var message = '';
jQuery.ajax({
    url: '/dir/myfile.php',
    type: "POST",
    dataType: "json",
    data: { message : message },
    error: function(xhr, text, thrown){
        console.log('error');
    },
    success: function(data, message, text, xhr){

        if(data.message){
            console.log('data exists');
        } else if(message){
            console.log(message);
        }else{
            console.log('no data');
        }
    },
})

PHP:

$output = array(
    'code' => 1,
    'message' => 'Please work!'
);
echo json_encode($output);
  • 3
    Что вы ожидаете, и что происходит вместо этого?
  • 0
    в чем твоя ошибка? «Если это не очевидно». Как это очевидно?
Показать ещё 6 комментариев
Теги:

1 ответ

2

Согласно https://api.jquery.com/jQuery.ajax/, прототипом обратного вызова успеха должно быть:

Function(PlainObject data, String textStatus, jqXHR jqXHR)

В любом случае, вы не должны делать такой тест:

if (data) { ... } else if (msg) { ... }

Потому что ваше сообщение - ваши данные!

То, что вы хотите, выглядит так:

if (data) { console.log(data.code) ; console.log(data.message) ; }
  • 0
    ну, данные ничего не возвращают. Таким образом, предупреждение для данных не получает вывод. MSG существует и возвращает «успех».
  • 0
    Вы также должны использовать объект Promise возвращаемый вызовом .ajax . Прокрутите вниз по api.jquery.com/jQuery.ajax, чтобы увидеть, как использовать done() fail() и always()
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню