jQuery ajax函数总是返回错误

时间:2015-04-21 13:05:59

标签: jquery ajax spring-mvc

我正在尝试实现一个简单的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"

1 个答案:

答案 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);
}