Ajax响应数据始终未定义

时间:2018-06-27 05:53:02

标签: php jquery ajax

我试图通过Ajax代码从数据库中获取数据。 PHP代码运行良好,但是ajax响应始终是未定义的。我试过了json bat resuls是一样的。 这是代码:

    var email = $('#email').val();

    function getAjax(p, m) {
        $.ajax({
            url: '../lib/checkmail.php',
            type: 'post',
            data: {val : p, column : m},
            success: function (data) {
                return data.toString();
            }
        });
    }
    if (email.length > 0){

        alert(getAjax(email, 'youremail'));
    }

enter image description here

2 个答案:

答案 0 :(得分:0)

尝试使用Ajax方法的 Accept content-type 属性。

答案 1 :(得分:0)

ajax调用是异步工作的。因此,当您调用getAjax(p, m)时,if将开始获取该URL,这需要花费时间,但是该函数会立即返回。只有在检索到URL之后,才会执行ajax调用的success函数。因此,您可以测试的是:

var email = $('#email').val();

function getAjax(p, m) {
    $.ajax({
        url: '../lib/checkmail.php',
        type: 'post',
        data: {val : p, column : m},
        success: function (data) {
            alert(data.toString());
        }
    });
}
if (email.length > 0){

    getAjax(email, 'youremail');
}

这应该给您警报并给出正确的响应。

另一个显而易见的问题是,您可能现在意识到getAjax(p, m)永远不会返回值。 return属于success函数。因此,getAjax(p, m)的返回值将始终为'undefined'。

您将必须学习如何使用事件驱动的异步编程语言。最好使用好书或课程。