这是我的ajax电话:
$J.ajax({
type: 'POST',
url: "/ajax/getCharts",
data: JSON.stringify(cids),
dataType: 'json',
asynch: false
})
这工作......直到昨天
我们正在使用Microsoft.AspNet.Identity; 现在我在我的ajax.fail标题中得到了这个错误:
X-回覆-JSON: { “状态”:401, “报头”:{ “位置”: “HTTP://本地主机:56970 /帐户/登录RETURNURL =%2Fajax%2FgetCharts”}}
哪种有意义 - 如果通话认证失败
注意:
在我的ajaxController中,我之前已经注释过它(有效):
[Authorize(Roles = "User")]
public class ajaxController : BaseController
现在我扩展了它包括我的新自定义用户角色,以便:
[Authorize(Roles = "Superuser, Poweruser, User")]
public class ajaxController : BaseController
那并没有奏效 我也在RegisterRoutes中添加了这个:
var settings = new FriendlyUrlSettings();
settings.AutoRedirectMode = RedirectMode.Off;
routes.EnableFriendlyUrls(settings);
建议:
ASP.NET Calling WebMethod with jQuery AJAX "401 (Unauthorized)"
但它没有工作
这个页面对我没有意义:
jquery $.ajax call results in 401 unauthorized response when in Chrome or Firefox, but works in IE
我在这里缺少什么?
答案 0 :(得分:1)
我能理解的问题是,当用户尝试登录时说我刚刚发送了登录请求..此时我没有登录意味着我目前没有任何角色,你已经为ajax控制器设置了一个授权过滤器允许一些角色
现在要删除此问题,只将allowannonymus属性设置为ajax控制器内的Login操作
像
[AllowAnonymous]
public async Task<ActionResult> Login()
{
}
p.s: - 并且不要忘记将它放在后期操作中,如果你有一个
,请注意注册操作