AngularJS - Spring POST-запрос с флажками - PullRequest
0 голосов
/ 03 июля 2018

В настоящее время я изучаю AngularJS с помощью Sprint Boot и использую запрос POST. Я знаю, что серверная часть работает правильно, однако я пытаюсь понять, в чем может быть проблема с использованием флажков и Spring Boot MVC. Простите, если мой код плохой, все еще новый.

Сообщение об ошибке:

{
 "status" : "400",
 "cause" : null,
 "method" : "POST",
 "message" : "Required request body is missing: public void com.velatt.dartentitlements.api.SiteController.addServicesToSite(java.lang.Long,org.springframework.hateoas.Resources<com.velatt.dartentitlements.domain.DeService>) throws java.net.URISyntaxException",
 "exception" : "HttpMessageNotReadableException",
 "path" : "/sites/1/services",
 "error" : "Bad Request"
}

Ответы [ 2 ]

0 голосов
/ 03 июля 2018

Попробуйте что-то вроде этого.

angularJs

// create array to hold request data
var selectedObjArray = [];

// push data to array.
 selectedObjArray.push(....);


$http({
        method: 'POST',
        url: "/sites/" + $scope.targetEntity.siteId + "/services",
        headers: {'Content-Type': 'application/json'},   // change content type to json
        data:selectedObjArray ,
    }).then(function (response) {
        $scope.services = response.data;
    });

Пружина MVC

@RequestMapping(value = "/sites/{id}/services", method = RequestMethod.POST, headers = { "Content-type=application/json" })
public void addServicesToSite(@PathVariable Long id, @RequestBody List<DeService> incoming) throws URISyntaxException {
    for (Link link : incoming.getLinks()) {
        DeService deService = utilityService.getDomainObjectFromUriString(link.getHref(), DeService.class);
        service.addServiceToSite(id, deService);
    }
}
0 голосов
/ 03 июля 2018

Вы должны передать тело от вас как ajax:

        $http({
            method: 'POST',
            url: "/sites/" + $scope.targetEntity.siteId + "/services",
            headers: {'Content-Type': 'application/x-www-form-urlencoded'},
            data:addRequest,
        }).then(function (response) {
            $scope.services = response.data;
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...