SpringBoot踩坑指南(三):Could not find acceptable representation原因及解决方法

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会直接使用内置的处理静态资源的控制器返回静态文件而不再去查找用户定义的控制器、

你可能感兴趣的:(SpringBoot)