не может получить ответ от jquery / ajax - PullRequest
0 голосов
/ 25 марта 2011

Это вызывает у меня головную боль, СНОВА. Либо я вообще ничего не понимаю в ответе на ajax, либо он плохо закодирован.

Давайте создадим чрезвычайно простой пример для работы:

register.php:

<?php
echo 'I want some response !!';
?>

AJAX Call:

$.ajax({
 url: '/register.php',
 type: 'POST',
 data: $('#form-registracia').serializeArray(),
 success: function(e){
   var response = e.responseText;
   alert(response);
 }
});

Оповещение говорит: undefined . Зачем? Я пытался возиться с этим часами, я читал сайт jquery, ничего не помогает. Я уверен, что PHP-файл выполняется и что эхо отправляется обратно в ajax.

Заранее спасибо!

Ответы [ 4 ]

0 голосов
/ 25 марта 2011

вы получаете неопределенное значение, потому что ответ, возвращаемый сервером, содержится внутри e, а не e.responseText.responseText является свойством объекта XHR, но jQuery инкапсулирует это для вас и предоставляет responseText в качестве аргумента в методе успеха.

Короче говоря, измените его следующим образом:

success: function (e) {var response = e;оповещение (ответ);}

0 голосов
/ 25 марта 2011

Попробуйте оповещение (е). Вы не отправляете объект, поэтому у него нет свойства responseText (это просто текст). Если вы хотите, чтобы запрос просматривался в браузере, используйте fiddler или firebug для просмотра заголовков запроса и ответа.

0 голосов
/ 25 марта 2011

Вам нужно прочитать jQuery api чуть лучше:

success(data, textStatus, jqXHR)Function, Array

Функция, вызываемая в случае успешного выполнения запроса. Функция получает три аргумента: данные, возвращаемые с сервера, отформатированные в соответствии с параметром dataType; строка, описывающая статус; и объект jqXHR (в jQuery 1.4.x, XMLHttpRequest). Начиная с jQuery 1.5, настройка успеха может принимать массив функций. Каждая функция будет вызываться по очереди. Это Ajax Event.

Первый параметр в успешном обратном вызове - ваши данные. Вы должны набрать alert(e).

0 голосов
/ 25 марта 2011

Аргументом к «успеху» является сам текст ответа;вы запрашиваете String для его элемента responseText, который действительно не определен.Просто используйте аргумент напрямую.

Существует форма с тремя аргументами функции успеха, в которой последний аргумент - это объект XHR, который вы ищете.

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