Ajax调用出错,但是在服务器端可以保存

时间:2018-08-17 01:02:35

标签: jquery ajax spring

我使用弹簧靴2。 我进行了ajax调用以保存表单。

$("#factoriesForm").submit(function (e) {
    e.preventDefault();
    debugger;
    var factoriesId = $('#factoriesForm input[name="id"]').val();

    var form = transForm.serialize('#factoriesForm');
    form = JSON.stringify(form);

    $.ajax({
        type: "post",
        url: "/template/edit/factories/" + factoriesId,
        data: form,
        contentType: "application/json",
        dataType: "json",
        success: function (data) {
            $('#factoriesForm input[name="id"]').val(data.id);

            new PNotify({
                title: /*[[#{success.title}]]*/ ,
                text: /*[[#{success.msg}]]*/ ,
                type: 'error',
                styling: 'bootstrap3',
                delay: 4000
            });

        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {

            new PNotify({
                title: /*[[#{error.title}]]*/ ,
                text: /*[[#{error.msg}]]*/ ,
                type: 'success',
                styling: 'bootstrap3',
                delay: 4000
            });

        }
    });

});

春天我的掌门人会做

@PostMapping("template/edit/factories/{id}")
@ResponseBody
public ResponseEntity<FactoriesDto> edit(Model model, @RequestBody FactoriesDto dto, @PathVariable("id") Integer id) {
    return new ResponseEntity<>(factoriesFacace.save(dto), HttpStatus.OK);
}

保存正确完成,但是当我在js中调试时,错误部分中的代码而不是成功。

  

JSON输入的意外结束”堆栈:“ SyntaxError:   JSON输入↵,位于Ut的parse()↵   (http://localhost:8080/webjars/jquery/3.3.1/dist/jquery.min.js:2:73768)↵   在k   (http://localhost:8080/webjars/jquery/3.3.1/dist/jquery.min.js:2:77335)↵   在XMLHttpRequest。   (http://localhost:8080/webjars/jquery/3.3.1/dist/jquery.min.js:2:79907)”

状态码为200。

1 个答案:

答案 0 :(得分:0)

尝试在以下位置更改您的Spring控制器:

@PostMapping("template/edit/factories/{id}")
@ResponseBody
public ResponseEntity<FactoriesDto> edit(Model model, @RequestBody FactoriesDto dto, @PathVariable("id") Integer id) {
    factoriesFacace.save(dto);
    return new ResponseEntity<>("", HttpStatus.OK);
}