JQuery POST没有返回预期的结果

时间:2013-06-05 18:25:48

标签: c# javascript jquery ajax asp.net-mvc-4

我正在使用jquery创建一个post请求,但我没有得到预期的结果。我只想回复 true

这是我的代码:

function deleteAllUsers() {
    $.post('/Account/DeleteAllUsers', function (data) {
        alert('post');
        alert(data);
    });
}

public JsonResult DeleteAllUsers()
    {
        var t = System.Web.Helpers.Json.Encode(new {ts = true});
        return Json(t);
    }

我也在后面的代码中试过这个:

public JsonResult DeleteAllUsers()
    {
        return Json(true);
    }

每次“alert(data)”返回整个网页的字符串。我究竟做错了什么?为什么这不会回归?

另外,当我进行ajax调用时,如何让调试器逐步完成代码?

4 个答案:

答案 0 :(得分:0)

如果您的调试器没有达到您的断点,我猜您没有达到您的方法。听起来你的ajax调用正在击中你正在使用的当前网址。如果您使用fiddler或firebug检查您的ajax请求,您是否可以确认您正在使用您的操作方法?也许您需要将您的javascript更改为$.get('/account/deleteallusers',blah blah blah....

答案 1 :(得分:0)

[HttpPost]属性放在您尝试调用的方法之上,如下所示:

[HttpGet]
public ActionResult DeleteAllUsers()
{
    return View();
}
[HttpPost]
public JsonResult DeleteAllUsers()
{
    return Json(true);
}

答案 2 :(得分:0)

你需要在返回的Json

上使用AllowGet
return Json(new { ts = true }, JsonRequestBehavior.AllowGet);

如果这不起作用,你可以发布消息/ html" data"包含

修改 对于获取/发布详细信息感到抱歉:(

顺便说一句,你不应该返回true或false来知道你的HttpPost是否有效,相反,你应该使用HTTPStatusCode;)

类似的东西:

return new HttpStatusCodeResult(HttpStatusCode.OK);

答案 3 :(得分:0)

我终于明白了......

问题是DeleteAllUsers未经过身份验证。所以响应是登录页面。它要求我登录以访问DeleteAllUsers函数。所以我授权访问这个功能。

<location path="Account/DeleteAllUsers">
<system.web>
  <authorization>
    <allow users="*"/>
  </authorization>
</system.web>

我装饰了我的方法......

    [HttpPost]
    [AllowAnonymous]
    public JsonResult DeleteAllUsers()
    {
        return Json(true);
    }

感谢大家的帮助!