Я не могу отправить данные из AngularJS на контроллер Spring MVC - PullRequest
0 голосов
/ 17 мая 2018

Как передать значения формы в скрипт Angular и из скрипта в контроллер Spring MVC. Ниже я написал код, в котором данные формы не может отправить контроллер

Сценарий

<script type="text/javascript">
var app = angular.module('formSubmit', []);

app.controller('FormSubmitController',[ '$scope', '$http', function($scope, $http) {

    $scope.list = [];
        $scope.headerText = 'AngularJS Post Form Spring MVC example: Submit below form';
        $scope.formData = {};
        $scope.submit = function() {

             var formData = {
                     "name" : $scope.name,
                     "salary" : $scope.salary,
                     "designation" : $scope.designation,
             };                                          

             var response = $http.post('submitmock',{ Emp: formData}); //passing Emp
                response.success(function(data, status, headers, config) {
                    $scope.list.push(data);
                });         


                response.error(function(data, status, headers, config) {
                    alert("Exception details: " + JSON.stringify({
                        data: $scope.formData //used formData model here
                    }));
                });

            //Empty list data after process
            $scope.list = [];

        };
    }]);

Spring MVC контроллер

  @RequestMapping(value = "submitmock", method = RequestMethod.POST)
public @ResponseBody Emp getMock(@RequestBody Emp Emp)  
{   
    serviceInD.savedata(Emp);
    return Emp;
}

Ответы [ 3 ]

0 голосов
/ 17 мая 2018

Вам нужно будет указать тип данных, которые вы отправляете своему контроллеру в своем посте http.Вы можете указать тип с заголовком в вашем запросе:

var response = $http.post('submitmock', { Emp: formData}, {headers:{'Content-Type': 'application/json'}});

0 голосов
/ 17 мая 2018

Ваша формаData уже является телом и не требует сопоставления с Emp. Попробуйте заменить следующий код в файле скрипта

var response = $http.post('submitmock', formData); //passing Emp
                response.success(function(data, status, headers, config) {
                    $scope.list.push(data);
                }); 
0 голосов
/ 17 мая 2018

Может быть, вам нужно разрешить перекрестное начало в вашей пружине MVC

примерно так:

@CrossOrigin
@RequestMapping(value = "submitmock", method = RequestMethod.POST)
public @ResponseBody Emp getMock(@RequestBody Emp Emp)  
{   
    serviceInD.savedata(Emp);
    return Emp;
}

Вы можете обратиться к руководству пружины: https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html#mvc-cors-controller

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...