jquery ajax 报交请求返回 HTTP 400 错误

 提交请求的AJAX代码如下:

点击(此处)折叠或打开

  1.                     $.ajax({
  2.                         url: "${ctx}/selfhelp/userAttributeAnalysis/userAttributeList",
  3.                         type: "POST",
  4.                         data:{appId:appId,
  5.                             type:type,
  6.                             startDate:startDate,
  7.                             endDate:endDate,
  8.                             deviceType:deviceType,
  9.                             displayType:displayType},
  10.                         dataType: "json",
  11.                         success: paddinglist
  12.                     });

    里面data是传的一些参数。

    ACTION使用的是SpringMVC的注解方式,接收方法如下:

点击(此处)折叠或打开

  1. @RequestMapping(value = "/userAttributeList")
  2. @ResponseBody
  3. public List<UserAttribute> userAttributeList(HttpServletRequest request,
  4.      int type, String appId, int deviceType, int displayType,
  5.      Date startDate, Date endDate, ModelMap modelMap) throws Exception {
  6.         。。。。。。。。
  7. }

    接收的地方也接收了这些参数,但通过DEBUG看,根本就没到这个方法里,在外层就抛错了。
    于是我Debug在DispatcherServlet上,发现在框架自动填充Date类型时,使用的格式是"yyyy-MM-dd HH:mm:ss",是在父类里有以下代码:

点击(此处)折叠或打开

  1.     @InitBinder
  2.     public void initBinder(ServletRequestDataBinder binder)
  3.     {
  4.         SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  5.         binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
  6.     }

    但我在WEB上设置的日期,格式是yyyy-MM-dd。
    原来如此,那解决办法就显而易见了。可以在ajax里将时间传入时加入时分秒,也可以改initBinder。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值