1. 程式人生 > >SpringBoot踩坑指南(三):Could not find acceptable representation原因及解決方法

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會直接使用內建的處理靜態資源的控制器返回靜態檔案而不再去查詢使用者定義的控制器、