大佬教程收集整理的这篇文章主要介绍了jquery – 未经授权的结果在ajax请求,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
但是,这不适用于ajax操作,因为如果用户被授权 – 他加载页面,该cookie到期后,他没有被授权,而不是html块,应该替换旧的,他将我的登录页面放在块内.
我知道我可以手动解决这个问题,例如删除[Authorize]属性,如果用户没有授权,返回特殊的json / empty html.但是我不喜欢这个解决方案,因为我需要重写所有的action和ajax函数.我想要全局解决方案,这样我就不能重写我的动作(可能是自定义授权属性,还是一些http未经授权的结果自定义处理).
protected void Application_Endrequest() { // Any AJAX request that ends in a redirect should get mapped to an unauthorized request // since it should only happen when the request is not authorized and gets automatically // redirected to the login page. var context = new httpContextwrapper( Context ); if (context.Response.StatusCode == 302 && context.request.IsAjaxrequest()) { context.Response.Clear(); Context.Response.StatusCode = 401; } }
然后在_Layout.cshtml文件中添加一个全局AJAX错误处理程序,当它获得401响应时重定向到您的登录操作.
<script type="text/javascript"> $(function () { $(document).ajaxError(function (e,xhr,setTings) { if (xhr.status == 401) { LOCATIOn = '@Url.Action( "login","account" )'; } }); }); </script>
您可能还想尝试Phil Haack博客Prevent Forms Authentication Login Page Redirect When You Don’t Want It中列出的一些技巧
以上是大佬教程为你收集整理的jquery – 未经授权的结果在ajax请求全部内容,希望文章能够帮你解决jquery – 未经授权的结果在ajax请求所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。