如何在AJAX请求成功时返回值

Art*_*yan 10 javascript ajax jquery asynchronous return-value

   function ajaxRefresh(actionUrl) {
        $.ajax({
        url: actionUrl,
        success: function() {
             return true;
        }});
        return false;
    }
Run Code Online (Sandbox Code Playgroud)

false即使请求成功,该函数仍会返回,因为请求是异步的.true请求成功后如何返回?

Pav*_*nok 14

您应该将参数设置asyncfalse.试试这段代码:

function ajaxRefresh(actionUrl) {
    var succeed = false;

    $.ajax({
    async: false,
    url: actionUrl,
    success: function() {
         succeed = true;
    }});

    return succeed;
}
Run Code Online (Sandbox Code Playgroud)

  • Eeeck!Async:false会在ajax调用期间锁定浏览器.这通常是一种可怕的用户体验.好的解决方案需要重构代码以使用成功/错误函数的回调或函数调用来继续执行进程并传递ajax调用的结果. (9认同)
  • 我猜每个人都有自己的答案风格.如果有人可能会在他们的问题上走错方向,我想帮助他们理解,而不是只回答文字问题. (9认同)
  • 是的,你是对的.但我已经回答了这个问题.Artur询问如何使函数返回结果.可用性问题是不可能的. (5认同)