RESTful - 可能未处理的拒绝

时间:2018-02-17 04:41:31

标签: java angularjs

我遇到了一个无法解决的问题,因为我使用backend创建了Java API for RESTful Web Services系统。我在这个论坛上看到过与我类似的一些问题,但我无法解决这个问题。

Possibly unhandled rejection:
{
    "data": {

        "timestamp": 1518840352603,
        "status": 500,
        "error": "Internal Server Error",
        "exception": "org.springframework.dao.DataIntegrityViolationException",
        "message": "could not execute statement; SQL [n/a]; constraint [null]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement",
        "path": "/postNewProducts"

    },
    "status": 500,
    "config": {

        "method": "POST",
        "transformRequest": [null],
        "transformResponse": [null],
        "jsonpCallbackParam": "callback",
        "url": "http://localhost:9000/postNewProducts",
        "data": {

            "name": "er",
            "price": "34"

        },
        "headers": {

            "Accept": "application/json, text/plain, */*",
            "Authorization": "Basic MTIzOjEyMw==",
            "Content-Type": "application/json; charset=utf-8"

        }

    },
    "statusText": ""

}

backend中,它无法保存数据,因为它们是以null发送的。所以我无法解决这个问题。我正在使用Angular 1.6

3 个答案:

答案 0 :(得分:0)

后端

@Autowired
private Products_Repo prodrepo;



@GetMapping(value="/getAllProducts")
public Iterable<Products> ListaProduct() {
    Iterable<Products> ListaProduct = prodrepo.findAll();
    return ListaProduct; 

}




@PostMapping("/postNewProducts")
public @ResponseBody Products CadastrarProduct(Products products) {
    return prodrepo.save(products);

}

前端

angular.module('app').controller(

&#39; ProdutosControllerCreate&#39;,function($ scope,ProductsFactory,$ http){

$scope.saveproduct = function(){
  var response = $http({
    method: 'POST',
    url: "http://localhost:9000/postNewProducts", 
    data: $scope.product
  }).then(function(data, status, headers, config){
    $scope.product = null;
  });
}

});

<div ng-controller="ProdutosControllerCreate">


<form name="addprodutosform" ng-submit="saveproduct()">
    <table>
        <tr>
            <td>Nome do Produto</td>
            <td><input type="text" ng-model="product.name"/></td>
        </tr>
        <tr>
            <td>Preco</td>
            <td><input type="text" ng-model="product.price"/></td>
        </tr>
        <td colspan="2"><input type="submit"/></td>
    </table>

</form>

答案 1 :(得分:0)

数据完整性异常发生在后端:
1)您从UI发送的某些数据类型与Pojo中定义的数据类型不同。
2)或者,您在Pojo中定义的数据类型与实体
中的数据类型不匹配 3)或最后一个,Java Entity类具有不同的数据类型,但您在DB中创建具有不同数据类型的列。
这些是数据完整性问题最常见的事情。

答案 2 :(得分:0)

好的,但在我的后端我分别在数据库中有名称和价格,因为我使用了hibernate,它生成名称和价格,name = varchar(255)和price = int(11)我不知道如何解决它...在数据库中我把它接受空数据空数据被发送到银行。