данные обещания ajax не определены - PullRequest
0 голосов
/ 27 июня 2018

Я немного ломаю голову над этим. У меня есть вызов ajax, как это:

function genericname()
{
    var domain = $('#input').val();
    var sendData = {
        'domain': domain
    };

    var promise = $.ajax(
    {
        type: 'POST',
        url: '/functions.php',
        data:
        {
            module: 'modulename',
            operation: 'functionname',
            parameters: sendData
        },
        dataType: 'json'
    }).promise();

    promise.then(function(data)
    {
        console.log(data);
        return data;
    });

    promise.fail(function(data)
    {
        console.log(data);
    });
}

Теперь проблема заключается в том, что при отладке я замечаю, что оба параметра promise.then и promisefail просто пропускаются. Php-процесс, который я вызываю для вывода, является истинным. На самом деле, когда я смотрю на вкладку сети инструментов отладки, ответ говорит, что это правда.

Может ли кто-нибудь объяснить, в чем здесь ошибка?

РЕДАКТИРОВАТЬ: результат, выводимый функцией php: json_encoded

Эта функция вызывается в .then части другого вызова ajax

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Проблема исправлена, и вот как я ее решил.

Функция должна была возвращать логическое значение, которое использовалось в операторе if в другом операторе .then другого вызова ajax для изменения некоторого html. В конце концов я прибегнул к размещению html-изменений в части .then, если эта функция.

Надеюсь, я смогу помочь кому-нибудь с этой информацией.

0 голосов
/ 27 июня 2018

удалить .promise в конце запроса ajax:

var domain = $('#input').val();
var sendData = {
    'domain': domain
};

var promise = $.ajax(
{
    type: 'POST',
    url: '/functions.php',
    data:
    {
        module: 'modulename',
        operation: 'functionname',
        parameters: sendData
    },
    dataType: 'json'
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...