jQuery中的多个AJAX请求

Aus*_*tin 7 javascript ajax jquery

我有一个函数从两个位置提取数据,并将返回的内容放在显示给用户的模式对话框中.

这两个请求都是异步的,因为它们是跨域的.问题在于我不希望在两个请求都完成加载之前显示模态.在加载模态之前,如何检查以确保两个请求都已完成?

我已经尝试将openModal函数放在第二个请求的成功处理程序中,并且在第一个请求在第二个请求之前完成加载时有效,但有时情况并非如此.

这是我的代码的副本:

function loadData(id) {
$.ajax({
    type: 'GET',
    url: 'https://someurl.com/v1.0/controller1/' + id,
    dataType: 'jsonp',
    success: function(data) {
        // Do some stuff to the data
    }
});

$.ajax({
    type: 'GET',
    url: 'https://someurl.com/v1.0/controller2/' + id,
    dataType: 'jsonp',
    success: function(data) {
        // Do some stuff to the data

        openModal();
    }
});
}

function openModal() {
// Open the modal
}
Run Code Online (Sandbox Code Playgroud)

Tim*_*Tim 10

看看新版本的jQuery - 1.5.它完全支持您的问题,您可以查看此博客文章以解决您的问题:http://www.erichynds.com/jquery/using-deferreds-in-jquery/