我在Spring MVC中使用Ajax并且无法获得执行的成功函数。
这是我的Spring Controller
@RequestMapping("looseSearch")
public @ResponseBody List<Book> search(@RequestParam("CHARS") String chars) {
List<Book> books = new ArrayList<Book>();
books.add(new Book("Star Treck", "Bettle Bum"));
return books;
}
}
这完美无缺。我可以添加一个断点并在调试中逐步执行代码。
这是来自我的JSP页面的代码中的ajax调用和相关的html:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<script src="http://code.jquery.com/jquery.js"></script>
<script type="text/javascript">
function doSearch() {
$.getJSON("looseSearch", {
CHARS : $('#searchBox').val()
},
function(data) {
alert("Response Received" + data);
});
}
</script>
</head>
<body>
<input id="searchBox" type="text" onKeyUp="doSearch();" />
<div id="results>Results will appear here....</div>
</body>
</html>
当我在输入中添加文本时,Spring控制器被执行但浏览器端没有任何操作。
没有抛出异常,控制台说“成功完成请求”
这是我的第一个Ajax调用,所以我对此非常了解。
提前谢谢。
答案 0 :(得分:1)
我想出来了。我没有意识到你可以通过使用.ajax函数中的error选项来获取错误,所以我将getJson转换为ajax函数并检查错误。问题是我没有必要的罐子转换为json。以下是我添加的Maven依赖项:
<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>