Java 在SPRING中从ajax调用响应时显示不可接受的错误
我试图从控制器类获取json数组形式的响应。当我试图从javascript发送请求时,出现了“不可接受”错误。请帮助在我的代码中找到ug 这是我控制器的代码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
@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还是手动添加依赖项?手动添加依赖项