0

以下是我的 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
    });
}

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

    [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"); });
    }  

有人可以在这里帮助我吗?

4

1 回答 1

0

当您的服务器没有返回正确的 JOSN 时会发生这种情况。

第一次尝试

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

});

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

您也可以尝试使用手动解析 JSON$.parseJSON()

希望能帮助到你。

于 2013-07-18T07:27:50.457 回答