【发布时间】:2012-10-05 23:06:08
【问题描述】:
我有以下控制器方法:
[HttpPost]
[Authorize(Roles="some_role_actual_user_is_NOT_in")
public ActionResult AJAXMethod()
{
return Json(new { message = "server message");
}
和带有脚本的页面:
function sendReq()
{
$.ajax({
type: "POST",
data: { somedata: "somedata" },
url: "/Path/To/AJAXMethod",
success: onAJAXSuccess,
error: onAJAXError
});
}
function onAJAXSuccess(response, status, xhr)
{
alert("success: " + response.message);
alert(status);
}
function onAJAXError(xhr,status,error)
{
alert("error: " + status);
alert(error);
}
当我以非授权角色调用 sendReq 时,AJAX 调用仍然成功 - 回调 onAJAXSuccess 被调用,但 response.message 未定义。
【问题讨论】:
-
这是一个预期的行为,你为什么不把错误放在控制器响应中呢?
-
那么是不是说
Authorize属性对AJAX方法没用了? -
当我想到它时,服务器不是以通常的登录页面响应吗?这将解释成功...
-
您是返回 JSON 消息还是将其输出为 JSON?
标签: asp.net-mvc-3 jquery