Java 在SPRING中从ajax调用响应时显示不可接受的错误

Java 在SPRING中从ajax调用响应时显示不可接受的错误,java,javascript,jquery,ajax,spring,Java,Javascript,Jquery,Ajax,Spring,我试图从控制器类获取json数组形式的响应。当我试图从javascript发送请求时,出现了“不可接受”错误。请帮助在我的代码中找到ug 这是我控制器的代码 @RequestMapping(value = "/ajaxvalue", method = { RequestMethod.GET }, produces=MediaType.APPLICATION_JSON_VALUE) public @ResponseBody Map<String, String> geResourc

我试图从控制器类获取json数组形式的响应。当我试图从javascript发送请求时,出现了“不可接受”错误。请帮助在我的代码中找到ug

这是我控制器的代码

@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;
    }
@RequestMapping(value=“/ajaxvalue”,method={RequestMethod.GET},products=MediaType.APPLICATION\u JSON\u value)
public@ResponseBody映射源列表(字符串名称){
info(“来自ajax的getAllResources()开始:”;
Map resourceMap=null;
试一试{
info(“来自ajax的getAllResources()开始:”;
resourceMap=newHashMap();
List resourceList=resourceService
.getAllResources();
java.util.Iterator resourceIterator=resourceList.Iterator();
while(resourceIterator.hasNext()){
ResourceModel模型=resourceIterator.next();
resourceMap.put(“+model.getResourceType()”,
model.getName());
logger.info(“+model.getResourceType(),
model.getName());
}
}捕获(例外e){
debug(“在ajax请求中获取位置时出错:”
+e.getMessage());
e、 printStackTrace();
}info(“来自ajax的getAllResources()结束:”;
返回资源图;
}
这是我的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);
}
});
jQuery.ajax({
url:“”,
键入:“GET”,
数据类型:'json',
contentType:“应用程序/json”,
cache:false,
成功:功能(响应){
警报(响应);
},
错误:函数(jqXhr、textStatus、errorshown){
警报(“错误:+错误抛出”);
}
});
尝试将请求头“Accept”添加到ajax调用中

 headers: {
    'Accept':'application/json',
 }

这很可能是因为类路径中没有jackson库,根据您的配置,以下是两种解决方案

如果您使用的是maven,那么在pom.xml中添加以下依赖项

<dependency>
    <groupId>org.codehaus.jackson</groupId>
    <artifactId>jackson-mapper-asl</artifactId>
    <version>${jackson.version}</version>
</dependency>

org.codehaus.jackson
并根据您的spring版本下载所需版本


确保根据您的spring版本获得合适的jackson版本。

检查google chrome中的“网络”选项卡。您必须从控制器返回json。您是使用maven还是手动添加依赖项?手动添加依赖项