码迷,mamicode.com
首页 > 其他好文 > 详细

记一次在 Get 请求参数为 Null 值的折腾

时间:2019-09-26 11:45:51      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:binder   angular   图片   def   存在   解决   int   初始   parameter   

先说主要原因,是因为一个 NgZerro 的 Select 组件,需要显示 placeHolder 文字,初始值为 null,然后直接绑定到查询参数中,传输到后端导致 BadRequest,参数解析失败。

原因也很简单。。。Get请求直接带的  localhost:4200/api/xxx?parameter=null   这里的 parameter 会被 net core 中的 DefaultModelBinder 转换为字符串 ‘null‘,然后就是悲剧了。

解决办法也很简单,要么人为的编码控制,不要有 null 的参数存在,但是这个并不能说完全就会记得(人毕竟会容易犯错),所以就只能从 AOP 的角度去过滤了。

前端 Angular 通过 HttpInterceptor 去拦截所有请求

技术图片

 

 后端自己写了个 ModelBinder 去过滤这种数据

技术图片

 

 至于为什么要这么麻烦去做,主要是为了容错率,人总是会犯错,那么就增加容错率,毕竟人不是机器。

记一次在 Get 请求参数为 Null 值的折腾

标签:binder   angular   图片   def   存在   解决   int   初始   parameter   

原文地址:https://www.cnblogs.com/luciusliang/p/11589550.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!