前几天当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取消的表单的提交。
提醒:当发现浏览器不能发出正常请求,应该回头考虑是否是验证出问题了!