Jquery回调函数仅适用于调试器

时间:2013-07-18 07:10:13

标签: c# jquery asp.net-mvc

以下是我的jquery函数:

function logIn() {
    debugger;
    $.ajax({
        type: "POST",
        url: '@Url.Action("LogIn", "Login")',
        success: function (result) {
            debugger;
            if (result == "Ok") {
                debugger;
                var url = $("#RedirectTo").val();
                location.href = url;
            }
        },
        dataType: "json",
        traditional: true
    });
}

以下是我在控制器中的LogIn功能:

    [HttpPost]
    public ActionResult LogIn()
    {
        int userId = userService.LoginUser("a@b.com", "abc");
       // return View("../Home/Index");
        return Json("Ok");
    }  

如果我调试jquery函数,它工作正常。但是,如果我删除调试器,控件不会成功部分功能。我不确定这里有什么问题。
我也试过替换jquery函数如下,但它也无法正常工作:

function logIn() {
        debugger;
        $.ajax({
            type: 'POST',
            url: '@Url.Action("LogIn", "Login")'
        }).done(function (data) {
            debugger;
            var url = $("#RedirectTo").val();
            location.href = url;
        })
          .fail(function () { alert("error"); })
          .always(function () { alert("complete"); });
    }  

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

当您的服务器没有返回正确的JOSN时,它会发生。

首先尝试

 $.ajax({
    type: "POST",
    url: '@Url.Action("LogIn", "Login")',
    success: function (result) {
       console.log(result);
    },

});

检查输出是否是正确的JSON,

您也可以尝试使用$.parseJSON()

手动解析JSON 希望它有所帮助。