返回 AJAX 调用数据的 JavaScript 函数

标签 javascript ajax jquery

我想创建一个 JavaScript 函数,它返回 jQuery AJAX 调用的值。我想要这样的东西。

function checkUserIdExists(userid){
    return $.ajax({
        url: 'theurl',
        type: 'GET',
        cache: false,
        data: {
           userid: userid
        },
        success: function(data){
            return data;
        }
    });
}

我知道我可以通过将 async 设置为 false 来做到这一点,但我宁愿不这样做。

最佳答案

您无法返回 AJAX 调用返回的数据,除非您想同步调用它(而且您也不想 – 相信我)。但是您可以返回的是 AJAX 调用返回的数据的 promise ,并且您实际上可以以非常优雅的方式实现它。

(更新: 请注意,目前 jQuery Promises 与 Promises/A+ specification 不兼容。 - 更多信息this answer .)

基本上,您可以返回 $.ajax(...) 调用的返回值:

function checkUserIdExists(userid){
    return $.ajax({
        url: 'theurl',
        type: 'GET',
        cache: false,
        data: {
           userid: userid
        }
    });
}

调用你的函数的人可以像这样使用它:

checkUserIdExists(userid).success(function (data) {
    // do something with data
});

参见this post of mine如果您有兴趣,可以获取更好的解释和演示。

关于返回 AJAX 调用数据的 JavaScript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5150571/

相关文章:

javascript - 表单提交后加载 Ajax

javascript - 模态转换显示问题

javascript - 如何以非阻塞方式组合可观察对象?

javascript - 使用选择器获取相关项目

jquery - 500(内部服务器错误)ajax 和 laravel

javascript - 动态加载的 JS 需要像在 html 中一样可点击

javascript - 动态添加字母作为 html 行增量

javascript - Facebook 粉丝页面之类的按钮有回调吗?

javascript - 单击第一个 child 后检查所有复选框错误

javascript - 如何构建一个简单的网络切换?