当前位置: 代码迷 >> JavaScript >> AJAX成功响应文本
  详细解决方案

AJAX成功响应文本

热度:68   发布时间:2023-06-12 13:39:12.0

现在,我正在将我的AJAX请求修改为异步,但我想知道是否有类似于var reponse = $.ajax({的成功。在我获得如下代码之前:

     var response = $.ajax({
           type : "GET",
           url : url,
           data : parameters,
           cache : false,
           async : false
    }).responseText;

return response;

我尝试使用第一个数据参数来做,但这只是返回参数。 我可以成功使用类似的东西吗?

success : function(response) {
     callBack(response); 
}

由于请求是异步的,因此您不能仅返回响应。

jQuery使用一种叫做“ promises”的东西,您可以返回它:

function getUser(id) {
    return $.ajax({
        url: "/user",
        data: { id:id },
    });
}

因此,只要想获得用户,就只需调用该函数:

var userRequest = getUser(123);

现在, userRequest变量包含“未来承诺”。 换句话说,将来的某个时候它将为您准备使用它。

您不能立即使用它,但是可以创建一个在最终准备就绪时将运行的函数。 这是使用.done()方法完成的:

userRequest.done(function (user) {
    console.log("The user " + user.name + " has been loaded!");
});

例如,如果您还希望将用户的个人资料加载到用户旁边,则可以创建两个请求,然后使用$.when()方法:

var userRequest    = getUser(123).
    profileRequest = getProfileForUser(123);

$.when(userRequest, profileRequest).done(function (user, profile) {
    console.log(user.name + " is " + profile.age + " years old");
});

阅读有关更多信息。

  相关解决方案