【发布时间】:2015-05-07 18:19:27
【问题描述】:
我正在使用 spring mvc 4 并尝试将简单的 map 返回到 ajax - 从我的控制器到 jsp 文件。
控制器:
@RequestMapping(value = "/ajaxtest", method = RequestMethod.GET)
public @ResponseBody
Map<String, String> myTest() {
System.out.println("------------------------------------test");
Map<String,String> myMap = new HashMap<String, String>();
myMap.put("a", "1");
myMap.put("b", "2");
return myMap;
}
来自jsp文件的Ajax:
function testAjax() {
$.ajax({
url : '../../ajaxtest.html',
dataType: "json",
contentType: "application/json;charset=utf-8",
success : function(data) {
alert("1");
alert(data);
}
});
}
但我没有收到任何警报,而只是收到错误 HTTP/1.1 406 Not Acceptable。
但是,更改代码以返回一个简单的字符串可以正常工作。 控制器:
@RequestMapping(value = "/ajaxtest", method = RequestMethod.GET)
public @ResponseBody
String myTest() {
System.out.println("------------------------------------test");
return "hello";
}
阿贾克斯:
function testAjax() {
$.ajax({
url : '../../ajaxtest.html',
success : function(data) {
alert("1");
alert(data);
}
});
}
按预期从 ajax 提醒 1 和 hello。
我按预期添加了 jackson jar 文件(通过 pom.xml):
dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.5.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.5.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.5.1</version>
</dependency>
我错过了什么吗? 我只想返回一个简单的映射结构(或将来的其他类结构)。
更新:
从弹簧控制台(不确定它是否相关):
Resolving exception from handler [null]: org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
提前致谢! 迈克
【问题讨论】:
标签: java ajax json spring-mvc jackson