【问题标题】:Ajax call not working in IE 11 onlyAjax 调用仅在 IE 11 中不起作用
【发布时间】:2014-04-02 10:09:21
【问题描述】:

我已经构建了一个 Web 应用程序。它在每个浏览器(Chrom、firefix、IE 7、8、9、10)上都可以正常工作,但不仅仅是 11。

这里是html:

<div class="menu_nav">
                <ul>
                    <li><a href="Upload.aspx">Upload</a></li>
                    <li class="active"><a id="btnSignIn" runat="server" rel="#div_Overlay" href="#">Sign in</a></li>
                </ul>
            </div>

这里是覆盖 div 代码:

$("#btnSignIn").overlay({

        //    // some mask tweaks suitable for modal dialogs
        //    mask: {
        //        color: '#ebecff',
        //        loadSpeed: 200,
        //        opacity: 0.9
        //    },
        //    //effect: 'myEffect',
        //    closeOnClick: false,
        //});

这是我的 ajax 请求:

$("#btnLogin").live('click', function () {
        if ($("#txtUserId").val() == "") {
            alert("User Id Required");
        }
        else if ($("#txtPassword").val() == "") {
            alert("Password Required");
        }
        else {
            $.ajax({
                url: "MainPage.aspx/CheckLogin",
                data: "{'UserId':'" + $("#txtUserId").val().trim() + "','Password':'" + $("#txtPassword").val().trim() + "'}",
                type: "POST",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (data) {
                    data = JSON && JSON.parse(data.d) || $.parseJSON(data.d);
                    if (data.Table[0].IsAllowed == "1") {
                        $("#btnSignIn").hide(function () {
                            var lblUserName = "<label class='lblWelcome'>Welcome, " + data.Table[0].UserFirstName + "<a id='btnlogout' href='#'>logout</label>";
                            $("#btnSignIn").parent().append(lblUserName);
                            $("#btnSignIn").overlay().close();
                        });
                        var v = window.location.search.replace("&msg=%27not%20logged%20in%27", "");
                        window.location.search = v;
                    }
                    else {
                        if (data.Table[0].IsVerified == "NotVerified") {
                            $("#txtPassword").val("");
                            $("#tr_Verify").show();
                        }
                        else {
                            $("#txtUserId").val("");
                            $("#txtPassword").val("");
                            alert("User Id Or Password Incorrect");
                        }
                    }

                },
                error: function (err) {
                    alert("Some error occured.Please contact to your administrator." + err);
                }
            });
        }
        return false;
    });

当我点击登录按钮时,它只是进入回调错误。在所有浏览器中,一切正常。 这是网址:

http://61.5.156.98/UPortal/MainPage.aspx

我也试过这个:

error:function(xhr,err,exception){
    alert(xhr); //shows [object][object]
    alert(err);    //shows error
    alert(exception); //shows Internal server error
    });

请帮帮我。用户 ID:03211234567 密码:1234567 如果有人有 IE 11,那么她/他可以看到问题 提前致谢。

【问题讨论】:

  • 请不要在登录时使用 Enter 按钮,因为我已将焦点设置在表单标签上以搜索按钮,请在登录按钮上单击显式。我会改正的。
  • 我偶然发现了类似的帖子,上面说 ajax 不适用于 IE 11。结帐this jquery ticket。
  • 您是否尝试在页眉中添加&lt;meta http-equiv="x-ua-compatible" content="IE=9" &gt;?

标签: jquery asp.net ajax


【解决方案1】:

在您的 ajax 调用中添加 cache: false,如下所示:

 $.ajax({
            url: "MainPage.aspx/CheckLogin",
            data: "{'UserId':'" + $("#txtUserId").val().trim() + "','Password':'" + $("#txtPassword").val().trim() + "'}",
            type: "POST",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            cache: false,
            success: function (data) {...

【讨论】:

  • 在找到这个答案之前,我已经为此奋斗了很长时间!多么令人头疼!为什么 IE11 会默认缓存这个?
  • 这也花了我很长时间才找到。这应该有更多的赞成票。
  • 有什么解释吗?
  • 你节省了我的时间
【解决方案2】:

要防止在 jQuery 代码中普遍缓存,请使用: $.ajaxSetup({ cache: false });或者在 $.ajax() 对象中,如上面的答案所示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-22
    • 1970-01-01
    • 2018-05-15
    • 2015-05-06
    • 2016-10-13
    • 2018-03-29
    • 2017-08-11
    • 1970-01-01
    相关资源
    最近更新 更多