jquery ajax 报交请求返回 HTTP 400 错误
提交请求的AJAX代码如下:
点击(此处)折叠或打开
- $.ajax({
- url: "${ctx}/selfhelp/userAttributeAnalysis/userAttributeList",
- type: "POST",
- data:{appId:appId,
- type:type,
- startDate:startDate,
- endDate:endDate,
- deviceType:deviceType,
- displayType:displayType},
- dataType: "json",
- success: paddinglist
- });
里面data是传的一些参数。
ACTION使用的是SpringMVC的注解方式,接收方法如下:
点击(此处)折叠或打开
- @RequestMapping(value = "/userAttributeList")
- @ResponseBody
- public List<UserAttribute> userAttributeList(HttpServletRequest request,
- int type, String appId, int deviceType, int displayType,
- Date startDate, Date endDate, ModelMap modelMap) throws Exception {
- 。。。。。。。。
- }
接收的地方也接收了这些参数,但通过DEBUG看,根本就没到这个方法里,在外层就抛错了。
于是我Debug在DispatcherServlet上,发现在框架自动填充Date类型时,使用的格式是"yyyy-MM-dd HH:mm:ss",是在父类里有以下代码:
点击(此处)折叠或打开
- @InitBinder
- public void initBinder(ServletRequestDataBinder binder)
- {
- SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
- }
但我在WEB上设置的日期,格式是yyyy-MM-dd。
原来如此,那解决办法就显而易见了。可以在ajax里将时间传入时加入时分秒,也可以改initBinder。
分类:
JavaScript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示