为什么在Ajax调用jquery之后返回不工作?

时间:2014-05-02 05:15:57

标签: javascript jquery ajax

我在ajax调用后无法获取返回值。我可以看到正在返回值但是当我执行console.log()时它显示未定义。我的方法有问题吗。

var base_path = "http://localhost/lab/theapp/api/";

$(function() {
    var url = base_path + "tasks";
    var type = "post";
    var data = "";
    var get = submit_me(type,data,url);
    console.log(get);
});


function submit_me(type,data,url) {
    try {
        $.ajax({
            url: url,
            type: type,
            data: data,
            dataType: 'json',
            beforeSend: function (request) {
                request.setRequestHeader("X-CSRF-Token", $.cookie('token'));
            },
            error: function(XMLHttpRequest, textStatus, errorThrown) {
                //alert('page_login_submit - failed to login');
                console.log(JSON.stringify(XMLHttpRequest));
                console.log(JSON.stringify(textStatus));
                console.log(JSON.stringify(errorThrown));
            },
            success: function (r) {
                if (r.sessid){
                    var sessid = r.sessid;
                    var session_name = r.session_name;
                    var token = r.token;
                    jQuery.cookie("token", token);
                    return r;
                }
            }
        });
    }
    catch (error) { console.log(error) }
}

1 个答案:

答案 0 :(得分:-1)

您的ajax调用需要一些时间来检索这些值。您无法将值直接传递给变量。在ajax成功函数中编写代码。即ajax请求函数中的console.log()。这将遵循ajax调用引起的延迟。试试这个链接https://api.jquery.com/jQuery.ajax/#jQuery-ajax-settings在这里检查async属性并进行实验。