springMvc ajax請求 報406錯誤
阿新 • • 發佈:2019-01-02
本專案中用的的版本號分別是:
spring 3.2.3.RELEASE
hibernate 4.2.5.Final
本來搭建框架的時候用的是spring 3.1.4.RELEASE web.xml中攔截的請求地址為 訪問正常沒有什麼問題
<filter-mapping>
<filter-name>safetyFilter</filter-name>
<url-pattern>*.htm</url-pattern>
</filter-mapping>
但是 因為專案中要用到mockMvc測試 它要求的spring版本必須是3.2以上 所以對spring進行升級 升級之後訪問一般的請求沒有問題 但是隻要是訪問ajax請求 就報406錯誤
上網找了很多內容,都不能解決問題(配置,註解都沒有問題),也不是jackson版本的問題,最後發現是因為版本的原因引起的.spring 3.2時requestedMediaTypes為[text/html] 不是要求的json格式,預設會將.htm、.html採用[text/html]編碼。
解決方法:
將.htm、.html換成.do或者其他的
修改之後:
<filter-mapping>
<filter-name>safetyFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
若配置了安全過濾器 對應的請求也需要修改:
<filter>
<filter-name>safetyFilter</filter-name>
<filter-class>com.pengtu.gsj.utils.filter.SafetyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>safetyFilter</filter-name>
<url-pattern>*.do </url-pattern>
</filter-mapping>