本文图文讲解后台接口请求参数加了@RequestBody注解后,前端$.post或$.ajax异步请求报415(Unsupported Media Type)或400(Bad Request)的排解过程。
因为后台接口不加@RequestBody在uni-app的uni.request请求用data传参数后台接收不到,只能在url中拼接参数,这样显得很不规范,于是后台接口参数就加了个@RequestBody注解了,但加了以后发现在前端html页面的$.post或$.ajax异步请求却报415(Unsupported Media Type)或400(Bad Request):
网上有说加@RequestBody加(required = false)的,有说加headers、’Content-Type’:’application/json;charset=utf8’或Accept: “application/json; charset=utf-8″,还有说加contentType: “application/json;charset=utf8″,等等,但你会发现然并卵:
最后发现要用JSON.stringify将json对象转成字符串才行:
总结:后台接口加@RequestBody注解后前端$.ajax异步请求必须加contentType: “application/json;charset=utf8″和JSON.stringify,否则将报415或400错误。
展开阅读全文