我的javascript代码中的错误

时间:2018-04-25 12:28:31

标签: javascript java jquery spring spring-boot

当我向我的网址发送帖子请求时,我的控制器设法将记录保存到数据库,但我的ajax出错了。我究竟做错了什么? 我的js代码:

function salvarValores(){
capturarValores()
$.ajax({
    type: "POST",
    url: "/service/newService/service",
    dataType: "json",
    contentType: 'application/json',
    data: JSON.stringify(( { 'cpfPessoa': cpfCliente, "descricaoServico": descricao } )),
    success: function(data){
        alert("Record successfully entered");
        location.reload();
    },
    error: function(data){
        alert("Error performing operation");
        location.reload();
    }
});

}

我的春季启动控制器

@PostMapping("/service/newService/service")
@ResponseBody
public ResponseEntity<String> newService(@RequestBody  Service service) {

    if (serviceDao.addObject(service)) {
        logger.debug("Adding data");
        return new ResponseEntity<String>("Data successfully saved", HttpStatus.OK);
    }
    logger.error("Error to insert data in database");
    return new ResponseEntity<String>("Error to insert data in database", HttpStatus.FAILED_DEPENDENCY);
}

当我点击保存按钮时,我收到一条警告,显示“错误执行操作”但该记录已正确插入数据库

1 个答案:

答案 0 :(得分:7)

你已经告诉jQuery你还在期待JSON:

$.ajax({
  // ...
  dataType: "json", // <== Here
  // ...
});

...但你回来的不是JSON:

return new ResponseEntity<String>("Data successfully saved", HttpStatus.OK);

因此,当jQuery尝试为您解析响应(作为JSON)时,它会失败。

删除dataType参数(或将其设置为"text")。更多in the documentation