1

我有这个功能

 function Get_Data(FileName) {
    $.ajax({
        type: 'POST',
        url: FileName,
        data: "{}",
        contentType: "application/json; charset=utf-8",
        dataType: 'json',
        success: function (jsonData) {
            alert("OK " + jsonData); // alert box1
            return jsonData;
        },
        error: function () {
            alert('Error loading');
            return "";
        }
    });
}

在我拥有的功能中

var SS = Get_Data('Min_Required.asp?id=' + ID);

alert('ID = ' + SS[0].ID +  ' SuppleName ' + SS[0].Sname); //alert box 2

如果我Min_Required.asp?id=29在地址栏中输入我得到的数据,我知道那里的数据

[{"ID":10,"Sname":"Farm"}]      :)

当它运行时

消息框(alert box1)说 OK “[object Object]”,这是 Get_Data 函数中的警报

但第二个消息框不显示:( :(

我错过了什么?

4

2 回答 2

2

作为参数添加async:false,到 ajax 调用。

于 2013-05-06T12:12:21.213 回答
0

函数“Get_Data”中的 ajax 调用是异步的。当 ajax 调用成功完成时,将调用第一条警报消息,其他警报消息在“Get_Data”函数之外,单独运行。

当 ajax 调用和当前进程在不同线程上运行时,它类似于线程。

为了使所需的事情成为可能,要么使 ajax 调用异步

async:false

或者将第二个警报消息调用放在 ajax 调用的成功回调中。

于 2013-05-06T12:21:16.113 回答