spring boot json参数调用
api跨域配置
@Configuration public class WebMvcConfig implements WebMvcConfigurer {//解决跨域问题 @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**"); } }
控制器
@PostMapping("/info") public Result info(@RequestBody(required = false) JSONObject prop) { try { Long id = Long.valueOf(prop.get("id").toString()); …… } catch (Exception e) { System.out.println("参数不对"); } }
postman调用
前端使用XMLHttpRequest对象
var url = 'http://127.0.0.1:8080/api/info'; myPost(url, {"id":3}, function(json){ if(json.code==200){ var data = json.data; }else{ alert("没有找到文件"); history.back(-1); } }); function myPost(url, data, callback){ var xhr = new XMLHttpRequest(); xhr.open('POST', url, true); xhr.setRequestHeader('Content-Type','application/json;charset=UTF-8'); xhr.onload = function(){ callback.call(this, JSON.parse( xhr.responseText )); } xhr.send(JSON.stringify(data)) }
说明:
xhr.open('POST', url, true)
第一个参数POST是HTTP请求类型为;
url是请求路由,即:请求网址;
true表示这是一个异步请求
xhr.setRequestHeader('content-type', 'application/json')
在HTPP请求的header中添加content-type
xhr.send(JSON.stringify(sendData))
xhr.send()方法要求传入数据格式是字符串或Document对象,但传入数据是一个Object,所以需要使用JSON.stringify()将其序列化成字符串