Spring Boot:Could not find acceptable representation原因
方法名跟页面、js重合了!!!
解决办法:改名字,尽量不要重合。
例子:
① html的名字 showArticle.html
② js的名字 showArticle.js
③ ajax传到后台来执行的方法名 ajax的url:"showArticle"
④ 后台拦截方法名
@ResponseBody
@RequestMapping(value = "/showArticle", method = RequestMethod.POST)
另附其他博客的解释:
当用户请求 /login.html
时,spring会查找/login
对应的控制器,并得到其返回的文档类型为application/json
, 然后判断它与后缀名.html
文档类型是否匹配,如果不匹配,就报HttpMediaTypeNotAcceptableException
了。
其实它的初衷是好的,它是想实现访问/user.json
时返回JSON数据,访问/user.html
返回HTML, 访问/user.xml
则返回XML的功能。但是在这里我们只用Spring Boot提供RESTful接口,因此该功能就无用武之地了
解决方案
- 防止静态文件名跟控制器请求路由冲突。如本例中,将
login.html
更名为signin.html
。 - 将静态文件URI与动态请求URI分离。如,把提供REST接口的URI都改成以
/api/XXX
开头,把静态文件改为以/static/XXX
开头。这样当请求/static/login.html
时,spring会直接使用内置的处理静态资源的控制器返回静态文件而不再去查找用户定义的控制器、