javascript - 在特定计算机上没有警报就不会发生 AJAX 调用

标签 javascript jquery ajax internet-explorer

所以我遇到了最奇怪的问题,在我公司的 CMS 中,我们有一个新闻通讯系统,它执行 AJAX 调用来发送电子邮件。现在这在所有操作系统上的所有现代浏览器中都能完美运行,但它不适用于一个客户端。

此客户端使用的是 Windows 7 和 IE9,我自己有 Windows 7 并尝试过 IE9(即使使用所有兼容模式),但它总是可以工作。

我不知道为什么它对他们不起作用,但是我能够通过在 AJAX 调用之前和内部放置一个 alert 来“修复”它。

我认为这一定与他们的硬件或连接有关,希望有人能给出解释。这是 AJAX 调用(带有警报),因此您可以看到没有任何问题(对吗?):

$('#send_single').unbind().click(function(event) {
    event.preventDefault();
    processing();               
    alert('one');

    $.post(
        'newsletter/ajax.php', 
        {   
            action: 'send_single', 
            email: $('#single_email').val(), 
            template: $('#select_template').val(), 
            id: $('#select_newsletter').val()
        }, 
        function(data) {
            alert('two');
            finished_processing();      
            cmsalert(data);
        }
    );
});

processing() 在处理框中淡出,finished_processing() 然后移除。如果没有警告框,finished_processing() 永远不会发生,如果有警告框,它会按预期运行。

processing()finished_processing()

function processing(){

    $('#full_overlay').fadeIn();
    $('#processing').fadeIn();

}

function finished_processing(){

    $('#full_overlay').fadeOut();
    $('#processing').fadeOut();

}

#full_overlay 是一个带有白色覆盖层的全屏固定 div。 #processing 是一个居中的 div,包含一个正在加载的 gif 和一个“请稍候...”字符串。

finished_processing() 不会发生,所以我认为 cmsalert() 没有任何相关性。 (cmsalert 在页面底部的一个 div 中滑动,包含一条通常是成功的消息)

最佳答案

尝试类似于 jquery docs 中的示例所示的操作,更改您的 finished_processing 函数,例如:

function finished_processing(){

    $('#full_overlay').promise().done(function() { this.fadeOut(); });
    $('#processing').promise().done(function() { this.fadeOut(); });

}

如果客户端连续点击几次,您也可能会遇到问题,请记住这一点。我相信 $.post() 的返回也可以用在同一行中($.post().promise()$.post( ).done) 以防你可以存储在一个变量中并使用它。您可能还想看看 Deferred Object .

关于javascript - 在特定计算机上没有警报就不会发生 AJAX 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8309274/

相关文章:

javascript - Three.js - 给粒子圆形

Jquery slider 名称

php - 在 JQGrid 中动态形成查询

PHP Ajax 表单发送

javascript - 比较数组(不修改原始数组)

javascript - 当我有 2 个 jquery 库时,文档就绪无法工作

javascript - HighCharts 未定义

javascript - 粘性侧边栏和页脚不起作用

javascript - 不确定如何使用 AJAX

javascript - 将 HTML 字符串传递给 JavaScript