TypeError: Failed to execute ‘fetch‘ on ‘Window‘: Request with GET/HEAD method cannot have body.
用swagger测试java接口,报错TypeError: Failed to execute ‘fetch‘ on ‘Window‘: Request with GET/HEAD method cannot have body.经过查找原因是由于方法中申明的是get方法却用了@requestBody,我们只要这个参数前的声明去掉就可以了。下面介绍下常用请求方式和参数的对应关系1、Post请求Re
用swagger测试java接口,报错TypeError: Failed to execute ‘fetch‘ on ‘Window‘: Request with GET/HEAD method cannot have body.
经过查找原因是由于方法中申明的是get方法却用了@requestBody,我们只要这个参数前的声明去掉就可以了。
下面介绍下常用请求方式和参数的对应关系
1、Post请求
RequestMethod.POST---》@RequestBody
RequestMethod.POST---》@RequestParam 这个既可以从body中获取也可从url获取
例如下面方法
@ResponseBody
@RequestMapping(value = { "/listFunc" }, method = RequestMethod.POST,produces="application/json;charset=UTF-8")
@ApiResponses(value = {@ApiResponse(code = 200, message = "XXX", response=String.class),
@ApiResponse(code = 201, message = "q"+ "(token验证失败)", response=String.class),
@ApiResponse(code = 202, message = "500" + "(系统错误)",response = String.class)})
@ApiOperation(value="查询列表",notes="/list",response = String.class)
public BaseResponse> getList(@RequestBody(required = false) ModelRequest request) {
}
2、Get请求
RequestMethod.GET---》这种可以有参数用模型驱动,或者属性驱动获取,但是不可以用@注解从body获取,如果这样写就会报我上面开头的错误。
(不需要注解) 从url后获取
@PathVariable 斜杠路劲中获取
@RequestMapping(value = { "/modal" }, method = RequestMethod.GET)
public String getinfo(XBusiness business , ModelMap modelMap) throws IOException {
}
在SpringBoot 中,两者的作用都是将request里的参数的值绑定到控制器contorl里的方法参数里,区别在于,URL写法不同。
使用@RequestParam时,URL是这样的:http://host:port/path?参数名=参数值
使用@PathVariable时,URL是这样的:http://host:port/path/参数值
下面用代码举例
@RequestMapping(value="/user",method = RequestMethod.GET)
public CommonRlt queryUser(@RequestParam String userId) {
return new CommonRlt(BasicRestStatusEnum.Ok.code(),userService.queryUserById(userId));
}
@RequestMapping(value="/user/{userId}",method = RequestMethod.GET)
public CommonRlt queryUser1(@PathVariable String userId) {
return new CommonRlt(BasicRestStatusEnum.Ok.code(),userService.queryUserById(userId));
}
更多推荐
所有评论(0)