javascript - jQuery ajax 函数未定义结果

标签 javascript jquery ajax

我意识到这个问题被问了很多,通常答案是 AJAX 是异步的,这就是它返回未定义的原因,但即使我在这里将异步设置为 false,调用函数时它仍然返回未定义。 res 始终未定义

function sendRequest(link, type, query) {
    $(document).ready(function(){
        $.ajax({
            'url' : link,
            'type' : type,
            'data' : query,
            'async' : false,
            'dataType': "json",
            'headers': {
                'Cache-Control':'max-age=0',
                'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
                'Content-Type':'application/x-www-form-urlencoded',
                'Accept-Language':'en-US,en;q=0.8,ar;q=0.6',
            }, 
            'success': function(data) {
                var res = data;
            }
        });
    });
    return res;
} 

此外,我确信请求已正确发送,并且响应也已正确接收

最佳答案

我认为更好的方法是让您的 sendRequest 函数返回 jQuery Promise Object 。举个例子

function sendRequest(link, type, query) {
  return $.ajax({
        'url' : link,
        'type' : type,
        'data' : query,
        'dataType': "json",
        'headers': {
            'Cache-Control':'max-age=0',
            'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
            'Content-Type':'application/x-www-form-urlencoded',
            'Accept-Language':'en-US,en;q=0.8,ar;q=0.6',
        }
    });
}

使用

sendRequest('/someurl', 'GET', {}).done(function(data) {
  // do whatever you need with data here
});

关于javascript - jQuery ajax 函数未定义结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23920175/

相关文章:

javascript - 如何找到最后单击的动态按钮

javascript - 成功ajax后不需要的重定向到POST url

javascript - 设置 Angular 变量互不影响

javascript - jQuery - 根据从选择字段中选择的值更改 id

javascript - 多个 Iframe 向同一个 SRC 发送一个请求

javascript - 我如何在 <a> 旁边的范围内显示所有 <a> 链接的 href

javascript - 如果单击输入,则阻止表单提交

javascript - 在 Jquery/Ajax 导航 Wordpress 上更新 <head> balise

Javascript 如何使用函数设置和获取间隔

javascript - Javascript 中问号 (?) 之前的最后一段