spring MVC 与 ajax 交互 json格式遇见的415、json解析错误

 
  

今天需要用jquery和spring MVC交互时出现了两个BUG,一个是http状态码415 数据格式错误,另外一个是spring接口接收json时出现解析错误异常。

 
  

问题1(http状态码415)解决办法:

使用 $.ajax 发送请求,指定contentType : 'application/json'即可。 错误原因是我使用了JQuery 的 $.post请求,这个里面并没有指定文本格式,通过Chrome调试后发现文本格式为 xxx-form,而不是application/json。

问题2(spring接口接收json时出现解析错误)解决办法:

使用JSON.stringify(data)写在data参数后面; data为json {"data":{"amount" : amount, "channel" : channel}} 。 错误原因是{"data":{"amount" : amount, "channel" : channel}}是一个json对象,而不是json字符串。需要使用JSON.stringify函数将对象转为json字符串。
 
  
JSP:
 
  
<%@ page contentType="text/html; UTF-8" pageEncoding="UTF-8" %>


    
        
    
    
    
    
        
        
    


Spring:
 
  
@ApiDesc(value = "ping++支付", returnDesc = "Charge", owner = "wdong")
@RequestMapping(value = "/pingtest", method = RequestMethod.POST)
@ResponseBody
public Charge pingtest(
        @ApiParam(desc = "ping++相关参数") @RequestBody RequestT> request,
        @ApiParam(desc = "身份唯一验证值") @RequestParam("access_token") String token)


你可能感兴趣的:(spring MVC 与 ajax 交互 json格式遇见的415、json解析错误)