【问题标题】:bug in my javascript code我的 javascript 代码中的错误
【发布时间】:2018-10-05 22:29:47
【问题描述】:

当我向我的 url 发送一个 post 请求时,我的控制器设法将记录保存到数据库中,但我的 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();
    }
});

}

我的 Spring Boot 控制器

@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);
}

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

【问题讨论】:

  • 什么是响应的响应码,可能是记录保存后触发一些错误导致请求失败
  • 为什么都是括号? data: JSON.stringify(({ 'cpfPessoa': cpfCliente, "descricaoServico": descricao })), 可以是 data: JSON.stringify({ 'cpfPessoa': cpfCliente, "descricaoServico": descricao }),
  • 能否粘贴 serviceDao 的 addObject 代码,或者如果正确持久化对象,您确定它返回 true ...
  • @mplungjan :-) 引号(两种)也是不必要的。
  • 你能附上数据值吗(在错误函数中)。我不知道错误是什么,或者错误代码。

标签: javascript java jquery spring spring-boot


【解决方案1】:

你告诉 jQuery 你期待 JSON 返回:

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

...但是您返回的不是 JSON:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-17
    • 2014-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多