JQuery POST没有返回预期的结果

本文关键字:结果 返回 POST JQuery | 更新日期: 2023-09-27 18:17:00

我正在使用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)"返回整个网页的字符串。我做错了什么?为什么这个不是true?

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

JQuery POST没有返回预期的结果

如果你的调试器没有击中你的断点,我猜你没有击中你的方法。听起来像是ajax调用击中了当前的url。如果你用fiddler或firebug检查你的ajax请求,你能确认你击中了你的action方法吗?也许你需要改变你的javascript为$.get('/account/deleteallusers',blah blah blah....

[HttpPost]属性置于您试图调用的方法之上,如下所示:

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

我终于弄明白了…

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

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

我这样修饰我的方法…

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

谢谢大家的帮助!

你需要在返回的Json上设置AllowGet

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

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

编辑:

对不起,关于get/post的细节:(

Btw,你不应该返回true或false来知道你的HttpPost是否工作,相反,你应该使用HTTPStatusCode;)

类似:

return new HttpStatusCodeResult(HttpStatusCode.OK);