jQuery не будет читать ответ JSON (используя $ .post) - PullRequest
1 голос
/ 17 января 2010

В двух словах, у меня есть форма, которая после отправки отправляет данные в серверный скрипт для обработки функции, возвращает данные в формате JSON, чтобы я мог проанализировать и выплюнуть обратно на страницу.

  1. jQuery отправляет данные в «createUser.php» с помощью метода $.post

    $("#create_submit").click(function(){
        $.post("/createUser.php", {
            create_user_name: $('#create_user_name').val(),
            create_user_email: $('#create_user_email').val(),
            create_user_password: $('#create_user_password').val() },
            function(data){
                alert(data.response);
            }, "json");
    });
    
  2. «createUser.php» возвращает данные JSON

    <?php
    header('Content-type: application/json');
    $return['response'] = 'hmm...';
    echo json_encode($return);
    exit;
    ?>
    

Может быть, это я, но я не могу получить предупреждение, в котором я нуждаюсь. Что происходит!?

Ответы [ 2 ]

3 голосов
/ 17 января 2010

Я думаю, что аргумент data для вашей функции обратного вызова уже является данными и не имеет response члена.

Попробуйте function(data){ alert(data); }

Документация: jquery.post

0 голосов
/ 17 января 2010

Из того, что я могу сказать из ваших ответов, JSON выводится только тогда, когда вы выполняете вышеуказанный запрос POST. Если вы делаете нормальный запрос GET, он работает нормально. Чтобы проверить это, измените $ .post на $ .get (и очистите переменные create_user_ *, если это необходимо) и посмотрите, получите ли вы ответ.

Если вы это сделаете, то вам нужно проверить файл createUser.php и посмотреть, почему запрос POST не возвращает JSON, а запрос GET - нет. Похоже, что это проблема PHP, а не проблема JavaScript / JSON / jQuery.

...