我试图以控制器类的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);
}
});
答案 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版本。