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

时间:2015-03-21 08:08:13

标签: java javascript jquery ajax spring

我试图以控制器类的json数组的形式获得响应。当我尝试从javascript发送请求时,我收到“Not Acceptable”错误。请帮助我在我的代码中查找。

这是我的控制器代码

@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);
}
});

2 个答案:

答案 0 :(得分:0)

尝试添加请求标头&#34;接受&#34;到ajax电话。

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

答案 1 :(得分:0)

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

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

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

如果您手动添加罐子,请转到jackson download page并根据您的弹簧版本下载所需的版本。

确保根据弹簧版本获得合适的jackson版本。