jQuery ajax responseText 'undefined' - PullRequest
       0

jQuery ajax responseText 'undefined'

2 голосов
/ 28 марта 2011

У меня есть некоторый jQuery, который отправляет две переменные в скрипт php.PHP очень прост и просто возвращает строку в зависимости от того, что он дал, то есть «обновление прошло успешно», которое я хотел бы каким-то образом использовать на странице.

При первом нажатии я получаю предупреждениеговоря «неопределенный», любые дальнейшие клики и все работает отлично.Я уверен, что я не за горами, но я не могу решить эту проблему!

Я использовал firebug, и данные опубликованы, и на все попытки получен правильный ответ.

Ответы [ 5 ]

2 голосов
/ 29 марта 2011

отсортировано.Требуется опция async: false в функции Ajax.

$.ajax({
    type:     "POST",
    data:     datastring,
    url:      "doadjust.php",
    dataType: "html",
    async:    false,
    success:  function(data) {
        alert(data);
    }
});
1 голос
/ 27 июня 2012

Это работает для меня.

var min = $.ajax(
        {
            type: 'POST',
            url: 'LineChart.asmx/LineChrt',
            data: "{}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            async: false,
            success: function(data) {
                // alert("SUCESS");
            },
            error: function(xhr, status) {
                alert("hatada:" + xhr.responseXML);
            },
            onComplete: function(data) {

            }
1 голос
/ 28 марта 2011

Что вы получаете с alert(data) ??

Кстати, успех не завершен:

        $.ajax({
                type: "POST",
                data: datastring,
                url: "doadjust.php",
                success: function(data) {
                   alert(data);
                }
               });
    });
0 голосов
/ 30 октября 2013

Это старый вопрос, но я столкнулся с той же проблемой и нашел ответ в документации по jQuery.

responeText и responseXml используются только при использовании dataType: text или xml. Если вы используете любые другие типы данных, они будут переданы в качестве первого параметра в вашем обратном вызове.

Из документации JQuery:

Типы данных

Функция $ .ajax () полагается на сервер для предоставления информации. о найденных данных. Если сервер сообщает о возвращенных данных как XML, результат может быть пройден с использованием обычных методов XML или jQuery селекторы. Если обнаружен другой тип, такой как HTML в примере выше, данные обрабатываются как текст.

Различную обработку данных можно получить с помощью параметра dataType. Помимо простого XML, dataType может быть html, json, jsonp, script или текст.

Типы text и xml возвращают данные без обработки. Данные просто передается обработчику успеха, либо через свойство responseText или responseXML объекта jqXHR, соответственно.

0 голосов
/ 10 сентября 2013

Вы должны добавить json тип, например:

$('#test').on('click', '.testclass', function(event){
    $.post($(this).attr('href'), 
     function(data) {
        alert(data.text);
    }, 'json');
}); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...