SpringBoot踩坑指南(三):Could not find acceptable representation原因及解決方法
阿新 • • 發佈:2019-01-24
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會直接使用內建的處理靜態資源的控制器返回靜態檔案而不再去查詢使用者定義的控制器、