我正在尝试实现一个简单的jquery ajax调用。由于参数传递给控制器,所以一切看起来都很好,但是如果我想在完成所需操作后更新页面上的某些元素,则函数总是返回错误。我已经看到关于这个主题已经有几个问题,但到目前为止还没有对我有所帮助。如果您在以下代码中发现错误,请提供帮助。 THX
$(document).ready(function () {
$('#link').click(function() {
$.ajax({
url: "http://localhost:8085/KPIAdmin/kpis/get",
type: "GET",
data: {
param1: "value1",
param2: "value2"
},
success: function() {
alert("Success!");
},
error: function (jqXHR, textStatus, errorThrown) {
console.log(jqXHR);
console.log(textStatus);
console.log(errorThrown);
},
});
});
});
在服务器端
@RequestMapping(value="/get", method=RequestMethod.GET)
public void ajaxGetKPI(@RequestParam("param1") String param1, @RequestParam("param2") String param2) {
System.out.println("param1: " + param1);
System.out.println("param2: " + param2);
}
错误日志
Object { readyState: 4, getResponseHeader: .ajax/v.getResponseHeader(), getAllResponseHeaders: .ajax/v.getAllResponseHeaders(), setRequestHeader: .ajax/v.setRequestHeader(), overrideMimeType: .ajax/v.overrideMimeType(), statusCode: .ajax/v.statusCode(), abort: .ajax/v.abort(), state: .Deferred/d.state(), always: .Deferred/d.always(), then: .Deferred/d.then(), 11 weitere… } ajaxGetKPI.js:24
"error" ajaxGetKPI.js:25
"Not Found"
答案 0 :(得分:1)
如果控制器声明了void返回类型,Spring将推断视图名称。在您的情况下,它将搜索视图名称get
,因此搜索Not found error
。
您可以使用@ResponseBody
注释您的控制器,而不会在正文中返回响应,但由于正文将为空,更好的选择是重新启动ResponseEntity
类似
@RequestMapping(value="/get", method=RequestMethod.GET)
public ResponseEntity<String> void ajaxGetKPI(@RequestParam("param1") String param1, @RequestParam("param2") String param2) {
System.out.println("param1: " + param1);
System.out.println("param2: " + param2);
new ResponseEntity<String>("OK",HttpStatus.NO_CONTENT);
}