繁体   English   中英

Ajax调用可在IE和Chrome中运行(并且仅在Firefox中,当在ajax调用结束时以调试模式添加断点时)

[英]Ajax call works in IE and Chrome (and only in Firefox when adding breakpoint in debug mode at end of ajax call)

我目前有以下在IE和Chrome中运行的代码。 以下问题仅在Firefox中存在(很奇怪,在调试模式下,我可以使它在Firefox中运行,并在下面的注释所示的ajax调用的末尾添加一个断点)。 我相信这可能与下面的ajax调用有关(错误)。 (有关详细信息,请参见代码注释)。

我有以下代码,这些代码从表单接收数据并将其发送到另一个JavaScript函数,以将数据发送回MVC控制器函数,后者将用户添加到数据库中。

$('#addUserSubmit').click(function () {
    var tagId = $(this).closest('form').find('input[name="userTag"]').val();
    var adminUser = $(this).closest('form').find('input[name="userName"]').val();
    AddUser(tagId, adminUser);
});

function AddUser(tagId, adminUser) {
    var data = JSON.stringify({
        'tagId': tagId,
        'adminUser': adminUser
    });
    $.ajax({ //HERE IS WHERE THE ERROR OCCURS (After it goes through to set all of the variables below).
        type: "POST",
        url: "/UsersAccounts/AddUser",
        data: data,
        success: function (outVal) {
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            alert(XMLHttpRequest + textStatus + errorThrown);
        },
        contentType: 'application/json'
    }); //IF I ADD A BREAKPOINT HERE IT WILL WORK IN GOING TO THE MVC 
        //FUNCTION TO BELOW AND IT WILL WORK AS INTENDED (BUT IF I RUN 
        //THE CODE NORMALLY OR WITHOUT A BREAKPOINT HERE IT WILL ALERT 
        //WITH THE ERROR ABOVE).
}

    [HttpPost]
    public String AddUser(int tagId, string adminUser){
        if (tagId > 0){
            try{
                using (TubeBPC db = new TubeBPC()){
                    Users user = new Users() {TAGID=tagId, AdminUser=adminUser };
                    db.Users.Add(user);
                    db.SaveChanges();
                    return "success";
                }
            }
            catch(Exception dbe){
                throw dbe;
            }
        }
        else{
            throw new ArgumentOutOfRangeException("TagID is not a positive number");
        }
     }

任何帮助深表感谢!

我设法进行了更多研究,并找到了解决方案。

“为了将此代码包装在一个函数中,它返回一个布尔值并且不需要回调函数(阻塞过程),您将需要使用同步请求”

没有firebug断点,jQuery ajax无法正常工作

希望它能帮助别人!

暂无
暂无

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

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