繁体   English   中英

Ajax方法不会在初始页面加载时触发

[英]Ajax method does not fire on initial page load

注意:阅读此问题后,请参阅底部的编辑。

此问题仅在IE 11中发生,并且仅在最近的Windows更新之后才开始发生。 有5个更新,其中一个特定于IE,因此我将其卸载了。 但是,问题仍然存在。 在考虑回滚剩余的更新之前,我的代码中是否固有错误? 以下是文档准备功能内部:

$('#leftmenu>li').click(function () {
    var clickedId = this.id;

    $.ajax({
        url: "Session/Index/",
        cache: false,
        success: function (result) {
            if (result.length > 0)
            {
                performListItemAction(clickedId);
            }
            else
            {
                window.location.href = 'Home/Index/'
            }
        }
    });
});

以下是performListItemAction方法(document.ready中没有的独立函数):

function performListItemAction(item)
{
    alert("clicked");

    $(".tabui").each(function ()
    {
        $(this).hide();
    });

    $(".listitem").each(function ()
    {
        $(this).css("background", "transparent");
    });

    $(document.getElementById(item)).css("background-color", "#C8C8C8");
    var targetId = $(document.getElementById(item)).data('target');
    var target = $(document.getElementById(targetId));
    target.show();

}

发生此问题时,单击的警报从不会出现,这就是我得出的ajax调用不起作用的方式。

其他一些注意事项:Firefox上没有发生此问题。 仅当我使用直接URL直接登录页面时,才会发生这种情况。 如果我通过应用程序的主屏幕登录,然后转到使用上述javascript的页面,则不会发生此问题。

谢谢。

编辑:我现在看到同样的问题也正在Firefox中发生。 它的频率要少得多。

经过反复试验,我认为我通过在每个URL的开头添加一个正斜杠并在ajax调用中添加了type: "POST",来解决此问题。 我以前不知道为什么它能正常工作,但现在在我所有的尝试中都能奏效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM