以前做asp.net .nvc项目,前后台交互时,后台返回值通常都会定义为类似下面这样的结构
result{
code:0,
Data:{}
}
使用code的值来判断是否执行成功。
最近做新项目的时候,同事建议,使用HTTPStatus来判断是否执行成功。例如,返回401,则表示没有登陆。返回501,则表示执行失败。
本地调试一切正常,但是放在服务器上,出问题了。IIS把所有的非200的返回值都拦截了。所有的额外信息都无法传到前台。查了好半天,才最终解决。
解决方案如下
后台返回时,使用如下方式
Response.StatusCode = 501;
Response.TrySkipIisCustomErrors = true;
在ASP.NET MVC项目中,采用HTTP状态码替代自定义code进行前后台交互判断。但服务器部署时,IIS对非200状态码的默认处理导致信息丢失,通过设置Response.TrySkipIisCustomErrors=true解决。

8129

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



