.net和jquery突然给我401错误

时间:2017-08-03 05:53:35

标签: jquery asp.net asp.net-ajax

这是我的ajax电话:

$J.ajax({
    type: 'POST',
    url: "/ajax/getCharts",
    data: JSON.stringify(cids),
    dataType: 'json',
    asynch: false
})
这工作......直到昨天 我们正在使用Microsoft.AspNet.Identity;
昨天我添加了更多用户角色,扩展了默认值,如“admin”,“user”等。

现在我在我的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

我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

我能理解的问题是,当用户尝试登录时说我刚刚发送了登录请求..此时我没有登录意味着我目前没有任何角色,你已经为ajax控制器设置了一个授权过滤器允许一些角色

现在要删除此问题,只将allowannonymus属性设置为ajax控制器内的Login操作

  [AllowAnonymous]
public async Task<ActionResult> Login()
{
}

p.s: - 并且不要忘记将它放在后期操作中,如果你有一个

,请注意注册操作