我正在尝试从 Controller 类获取 json 数组形式的响应。当我尝试从 javascript 发送请求时,出现“ Not Acceptable ”错误。请帮助查找我的代码中的错误。
这是我的 Controller 的代码
@RequestMapping(value = "/ajaxvalue", method = { RequestMethod.GET }, produces=MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody Map<String, String> geResourceList(String name){
logger.info("getAllResources() from ajax begins: ");
Map<String, String> resourceMap = null;
try {
logger.info("getAllResources() from ajax begin: ");
resourceMap = new HashMap<String, String>();
List<ResourceModel> resourceList = resourceService
.getAllResources();
java.util.Iterator<ResourceModel> resourceIterator = resourceList.iterator();
while (resourceIterator.hasNext()) {
ResourceModel model = resourceIterator.next();
resourceMap.put("" + model.getResourceType(),
model.getName());
logger.info("" + model.getResourceType(),
model.getName());
}
} catch (Exception e) {
logger.debug("Error while getting location in ajax request:"
+ e.getMessage());
e.printStackTrace();
}logger.info("getAllResources() from ajax ENDS: ");
return resourceMap;
}
这是我的 jquery 代码。
jQuery.ajax({
url: '<c:url value='/learningresources/ajaxvalue'/>',
type: 'GET',
dataType:'json',
contentType: "application/json",
cache:false,
success:function(response){
alert(response);
},
error:function(jqXhr, textStatus, errorThrown){
alert("error: "+errorThrown);
}
});
最佳答案
这很可能是因为类路径中没有 jackson 库,以下是两种解决方案,具体取决于您的配置。
如果您使用maven,则在 pom.xml 中添加以下依赖项
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>${jackson.version}</version>
</dependency>
如果您手动添加 jar,则转到 jackson download page并根据您的spring版本下载所需的版本。
确保您根据您的 Spring 版本获得合适的 Jackson 版本。
关于java - 在 SPRING 中调用 ajax 响应时显示 Not Acceptable 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29180583/