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调用时,我如何让调试器逐步完成后面的代码?
如果你的调试器没有击中你的断点,我猜你没有击中你的方法。听起来像是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);