前几天当AccountController控制器加上[Authorize]后,遇到古怪的jQuery Validation失败问题,导致浏览器Ajax无法发出请求,通过浏览器的network观察得知,去掉[Authorize],[HttpPost][AllowAnonymous]下的Reg动作就能接收到请求,加上就不成,开始怀疑视图上的一些前端框架,例如:
bootstrap的js和自有的js,最后排查到是jQuery Validation的问题,再顺藤摸瓜是因为在Reg方法的参数RegMemberView的Email属性有System.Web.Mvc.Remote特性,该特性关联的动作是Account控制器里的CheckUserEmailIsExists动作,然而CheckUserEmailIsExists动作没有[AllowAnonymous],致使浏览器访问该动作时抛出401,进而造成jQuery Validation取消的表单的提交。
提醒:当发现浏览器不能发出正常请求,应该回头考虑是否是验证出问题了!
探讨了在AccountController控制器中使用[Authorize]后遇到的jQueryValidation失败问题,详细分析了由于CheckUserEmailIsExists动作缺少[AllowAnonymous]特性而导致的401错误,并提供了相应的解决方案。
120

被折叠的 条评论
为什么被折叠?



