我正在使用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调用时,如何让调试器逐步完成代码?
答案 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
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);
}
感谢大家的帮助!