Mathias Kiekens
Mathias Kiekens

Reputation: 70

ajax promise data undefined

I'm somewhat breaking my head over this. I have an ajax call like this:

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);
    });
}

Now the problem is that when debugging I notice that both promise.then and promise.fail are just skipped. The php proces I am calling to output is true. Actually when I look in the network tab of the debug tools the response says true.

Could anyone explain what the mistake is here?

EDIT: the result being output by the php function is json_encoded

This function is being called in the .then portion of another ajax call

Upvotes: 1

Views: 81

Answers (2)

Mathias Kiekens
Mathias Kiekens

Reputation: 70

The issue is fixed now and here is how I solved it.

The function was required to return a boolean which was used in the if statement in another .then statement of another ajax call to change some html. In the end I resorted to placing the html changes in the .then portion if this function.

Hope I can help someone with this information.

Upvotes: 0

Neriya Rosner
Neriya Rosner

Reputation: 43

remove .promise at the end of ajax request:

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'
})

Upvotes: 1

Related Questions