Возможно необработанное отклонение: - При попытке передать данные из angularJS в Spring MVC - PullRequest
0 голосов
/ 24 сентября 2018

Эта ошибка много тестирует меня.Может кто-нибудь помочь, что я сделал не так?

У меня есть скрипт, который содержит значение нескольких параметров в формате JSON.

var mpdApp = angular.module('mpdApp', ['ngAnimate',
    'ngSanitize', 'ui.bootstrap'
]);

mpdApp
    .controller(
        'mpdController',
        [
            '$scope',
            '$rootScope',
            '$http',
            '$window',

            function($scope, $rootScope, $http, $window) {
                $scope.doValidation = function() {

                    var mpdData = {
                        'mpdPolicyNumber': $scope.mpdPolicyNumber,
                        'mpdFirstName': $scope.mpdFirstName,
                        'mpdLastName': $scope.mpdLastName,
                        'mpdAddress': $scope.mpdAddress,
                        'mpdPhoneNumber': $scope.mpdPhoneNumber
                    };

                    console.log(mpdData);

                    $http({
                            'url': '/mpdValidate',
                            'method': 'POST',
                            'headers': {
                                'Content-Type': 'application/json'
                            },
                            'params': mpdData
                        })
                        .then(
                            function(response) {
                                $rootScope.resultMpdData = response.data;
                            });
                };
            }
        ]);

Когда я пытаюсь передать это в свой контроллер Spring MVCчерез POST,

метод пружинного MVC контроллера :

@PostMapping(path = "/mpdValidate", produces = "application/json")
    @ResponseBody
    public List<MPDValidationOutputVO> mpdValidate(@RequestParam("mpdPolicyNumber") String mpdPolicyNumber,
            @RequestParam("mpdFirstName") String mpdFirstName, @RequestParam("mpdLastName") String mpdLastName,
            @RequestParam("mpdAddress") String mpdAddress, @RequestParam("mpdPhoneNumber") String mpdPhoneNumber)
            throws JsonParseException, JsonMappingException, IOException {

        System.out.println("*************");
        MPDValidationInputVO mpdValidationInput = new MPDValidationInputVO();
        List<MPDValidationOutputVO> mpdValidationOutput = mpdValidationService.mpdValidate(mpdValidationInput);
        return mpdValidationOutput;
    }

Я получаю эту ошибку.error

Журнал консоли :

{mpdPolicyNumber: "werwer", mpdFirstName: "czxc", mpdLastName: "werwe", mpdAddress: "ghhdf", mpdPhoneNumber: "asaa"}

Ваша помощь приветствуется.

Ответы [ 2 ]

0 голосов
/ 24 сентября 2018

yield = "application / json" будет обрабатываться только в том случае, если заголовок Accept равен "application / json"

Слишком много параметров в вашем методе, отсутствует только 1 параметр, это приведет к 404.

Возможно, вы захотите добавить значение по умолчанию или required = false, если параметр не отображается.это поможет вам предотвратить ошибку 404.

@PostMapping(path = "/mpdValidate", produces = "application/json")
    @ResponseBody
    public List<MPDValidationOutputVO> mpdValidate(@RequestParam("mpdPolicyNumber") String mpdPolicyNumber,
            @RequestParam("mpdFirstName") String mpdFirstName, @RequestParam("mpdLastName") String mpdLastName,
            @RequestParam("mpdAddress") String mpdAddress, @RequestParam("mpdPhoneNumber") String mpdPhoneNumber)
            throws JsonParseException, JsonMappingException, IOException {

        System.out.println("*************");
        MPDValidationInputVO mpdValidationInput = new MPDValidationInputVO();
        List<MPDValidationOutputVO> mpdValidationOutput = mpdValidationService.mpdValidate(mpdValidationInput);
        return mpdValidationOutput;
    }
0 голосов
/ 24 сентября 2018

Попробуйте использовать этот вариант

$http({
        url: 'request-url',
        method: "POST",
        data: { 'message' : message }
    })

Поскольку URL-адрес уже является параметром, вы не должны заключать его в одинарные кавычки.

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