Ajax請求出現406的原因和解決方法
阿新 • • 發佈:2019-02-19
一般出現406錯誤有兩種可能:
1、如果字尾是html是不能響應json資料的。需要修改後綴名。
在做偽靜態化過程中,以.html結尾的字尾,做post請求時,不能響應json格式,這是spring官方做出的處理
可以加一個字尾改為.action
2、檢視Jackson包是否存在。spring MVC預設依賴Jackson包
第一種問題的解決方案:
第二種問題的解決方案:
在springMVC配置檔案中新增以下程式碼:
<!--避免ajax請求出現406錯誤--> <bean id="contentNegotiationManager" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean"> <property name="favorPathExtension" value="false"/> <property name="favorParameter" value="false"/> <property name="ignoreAcceptHeader" value="false"/> <property name="mediaTypes"> <value> atom = application/atom+xml html = text/html json = application/json * = */* </value> </property> </bean> <mvc:annotation-driven content-negotiation-manager="contentNegotiationManager" > <mvc:message-converters register-defaults="true"> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="supportedMediaTypes"> <list><value>text/html;charset=UTF-8</value></list> </property> </bean> </mvc:message-converters> </mvc:annotation-driven>
在pom.xml 新增如下依賴:
<!--JSON:jackson-->
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.8.1</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.8.1</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.8.1</version> </dependency>