简体   繁体   中英

Ajax method does not fire on initial page load

Note: Please see edit at the bottom after reading this question.

This issue is only happening in IE 11, and only started occurring after a recent Windows update. There were 5 updates, one of which was specific to IE, so I uninstalled that one. However, the issue still exists. Before I consider rolling back the remaining updates, is there something inherently wrong in my code? The following is inside the document ready function:

$('#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/'
            }
        }
    });
});

And the following is the performListItemAction method (a separate function not in 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();

}

The alert clicked never appears when this problem happens, and that is how I concluded the ajax call is not working.

A few other notes: This issue isn't happening on Firefox. This only happens if I directly login to the page with a direct URL. If I log in via the application's home screen, and then go to the page that uses the above javascript, the issue doesn't occur.

Thank you.

EDIT: I just now see that the same issue is now occurring in Firefox as well. It's just much less frequent.

After trial and error, I think I fixed the issue by adding a forward slash to the beginning of each of the URLs, and added the type: "POST", to the ajax call. I don't know why it was working fine before, but now this works in all my attempts.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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