javascript - Ajax异步响应未加载到div中

标签 javascript jquery ajax asynchronous

这就是困扰我的事情。我的代码正在 document.ready 上运行。我需要异步请求,这意味着 async: true

for (var i = 0; i < totalGraphs; i++) {
    var kpiId = kpiIds[i];
    jQuery.ajax({
        type: 'POST',
        url: graphUrl,
        data: "kpiId="+kpiId+"&divId="+(i+1),
        async: true, //if false things are working fine
        cache:false,
        success: function(response){
            document.getDocumentById("graph" + (i + 1)).innerHTML("hello");
        },
        error:function(XMLHttpRequest, textStatus, errorThrown) {
        }
    });
}

此请求不会将 hello 放入我的 graphX div 中,但每当我放入 async: false 时,一切都会正常工作。我确实需要异步请求。

预先感谢您的帮助。

最佳答案

试试这个...

for (var i = 0; i < totalGraphs; i++){
    (function ajaxCall(index) {
        var kpiId = kpiIds[index];
        jQuery.ajax({
            type: "POST",
            url: graphUrl,
            data: {
                kpiId : kpiId,
                divId : index + 1
            },
            async: true, //if false things are working fine
            cache: false,
            success: function(response) {
                document.getDocumentById("graph" + (index + 1)).innerHTML("hello");
            },
            error: function(XMLHttpRequest,textStatus,errorThrown) {}
        });
    })(i);
}

我将 ajax 调用包装在一个匿名函数中,这样 i 的值相对于 ajax 调用永远不会改变。

关于javascript - Ajax异步响应未加载到div中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19114463/

相关文章:

javascript - 选项选择菜单,检测第一个选项是否被选中,而不是第一个选项的值

javascript - 尝试使用 jquery 工具将鼠标悬停在覆盖层上

jquery - Rails3 中通过 AJAX 请求加载页面内容的最佳实践?

ruby-on-rails - 在 Rails 中通过 AJAX 调用呈现 JSON

javascript - 是否可以在 material-ui 的 Chip 组件上设置删除按钮的样式?

javascript - 在youtube iFrame中访问 'Stats for nerds'数据

jquery - 创建带有下一个/上一个链接的全屏 div

javascript - 图像映射中的背景图像

javascript - 如何编写 chrome 建议服务

javascript - 滚动回到顶部在 IE6 中不起作用