org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/x-www-form-url

1.首先找是否缺少需要的jar包(jackson相关三个jar包:jackson-annotation.jar,jackson-core.jar,jackson-databind.jar),而本人项目jar包由maven管理,所以排除这种可能。

2.在后台请求方法上的注解中加上consumes = “application/json”,即
@RequestMapping(value = "/book/set/",consumes = "application/json")
这个成功的可能性也不大

3.若是前台使用ajax传值,则设置其中的请求头

contentType: “application/json; charset=utf-8”

4.以上方法不行时(或者前台并不用ajax传值,或数据并不是json格式),把接口API的参数接收格式修改为接收form表单。
把注解@RequestBody 去掉,因为此注解表示j接收的参数格式为json

    /**
	 * 获得所有菜单
	 */
	@RequestMapping(value = "listMenu", method=RequestMethod.POST)
	@ResponseBody
	public List listMenu(@RequestBody MenuQuery menuQuery) {
		
		List menuInfos = new ArrayList<>();
		if(menuQuery.getAppName() == null && menuQuery.getParentId() == null){
			logger.info("获得所有菜单");
			menuInfos = menuClientService.getMenu("");
		}else{
			MenuInfoList list = menuClientService.getMenus(menuQuery);
			menuInfos = list.getMenuInfo();
		}
		return menuInfos;
	}

到第四步终于解决了问题,这一步解决方法来自:https://blog.csdn.net/y_h_d/article/details/80118289

你可能感兴趣的:(javascript,json,ajax)