javascript - jQuery : Ajax is not been called first

标签 javascript jquery ajax

我有一个 Jquery 代码,如下所示

function get_data_obj(){
    var dataObj;
    $.ajax({
        url: "XXX.soesite.XXX",
        success: function(result) {
            dataObj = ['Hi'];
            console.log("Inside ajax");
            console.log(dataObj);
        }
    });
    console.log("Outside ajax");
    console.log(dataObj);
}
get_data_obj();

我期望的输出是

Inside ajax
['Hi']
Outside ajax
['Hi']

但是我得到的输出看起来像这样

Outside ajax
undefined
Inside ajax
['Hi']

我对函数的控制流感到非常困惑。基本上,我的函数应该首先使用 ajax,然后打印其他语句,但不幸的是我的函数没有按我的预期工作。谁能告诉我我的代码有什么问题以及如何让我的函数首先完成ajax工作然后再进一步?

最佳答案

如果您没有另外指定,

$.ajax 默认是异步的。

如果您希望在 $.ajax 请求之后发生操作,则应将其包含在 done()/success() 中>/fail() 函数或将 async 设置为 false

function get_data_obj() {
    var dataObj;

    $.ajax({ url: "XXX.soesite.XXX", async: false, success: function(result) {
        dataObj = ['Hi'];
        console.log("Inside ajax");
        console.log(dataObj);
    }});

    console.log("Outside ajax");
    console.log(dataObj);
}

get_data_obj();

关于javascript - jQuery : Ajax is not been called first,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39654948/

相关文章:

ajax - JSF/PrimeFaces ajax 请求上的 session 超时和 ViewExpiredException 处理

javascript - 如何获取来自不同主机的表的特定单元格的值

javascript - 从页面中删除其他元素后为 float 元素设置动画

jquery - ASP.NET MVC - 从 IIS 接收 Json 响应时出现问题

javascript - 具有动态页面数的 C# ASP.NET 服务器端轮播 slider

css - 在 foursquare.com 上执行 'Recent Activity' 效果的页面小部件或插件?

javascript - Angular 4 中的 Youtube 视频

javascript - Plotly.js 图表注释未对齐

javascript - 从动态选择框构造 mySQL 查询

c# - 使用 Jquery Ajax 将 html 字符串传递到服务器端