我在进行jQuery ajax调用时得到HttpMediaTypeNotAcceptableException
。
我有以下配置。
在上下文中我(这是在类路径中)
<context:component-scan base-package=" group package" />
<mvc:annotation-driven />
我在servlet-config
<context:component-scan base-package="controller pacakges alone" />
<mvc:annotation-driven />
我在pom.xml中添加了jackson-mapper-asl 1.9.13
并使用spring core 3.2.4
和security 3.1.4
我有一个jQuery ajax调用
$.ajax({
url : "checkUser.html",
cache : false,
type : "post",
data : "email=" + $('#email').val(),
success : function(response) {
success callback;
}
});
我遇到了这个例外:
org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
答案 0 :(得分:2)
这是一个更好的解释:http://spring.io/blog/2013/05/11/content-negotiation-using-spring-mvc
您可能希望设置可接受的媒体类型,如:
<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<property name="mediaTypes">
<map>
<entry key="html" value="text/html"/>
<entry key="json" value="application/json"/>
</map>
</property>
此外,您只需发送
等参数即可var url = "/checkUser/" + $('#email').val() + ".htm";
$.ajax({
type: "POST",
url: url,
success: function(msg){
控制器中的
@RequestMapping(value = "/checkUser/{email}",method = RequestMethod.POST)
答案 1 :(得分:0)
唉,我得到了它,下面改为配置内容协商的弹簧3.2版本导致了这个问题,因为默认情况下通过文件扩展名进行内容协商,我的页面在升级到3.2版本时停止工作。
我已禁用上述文件媒体类型扩展名
<bean id="contentNegotiationManager"
class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
<property name="favorPathExtension" value="false" />
<property name="favorParameter" value="true" />
<property name="mediaTypes">
<value>
json=application/json
xml=application/xml
</value>
</property>
</bean>
这篇文章了解更多信息。
HttpMediaTypeNotAcceptableException after upgrading to Spring 3.2