невозможно прочитать параметры POST в приложении Spring

0

Я использую угловые js для отправки параметров весеннему приложению.

С угловой стороны

$http.post('dashboard/processSearch',{processRequestName:'TestName',displayName:'Test'})
    .then(function(response) {
        console.log(response.data);
    });

На стороне контроллера весной

@RequestMapping(value = "/processSearch", method = RequestMethod.POST)
@ResponseBody
public String searchAll(@RequestParam String processRequestName, @RequestParam String displayName) {

    return processRequestName+"####"+displayName;
}

Я получаю полную веб-страницу в ответе ajax с сообщением об ошибке

При выполнении операции ошибка приложения обнаружила ошибку. См. Данные об ошибках ниже. Ссылка на ошибку: 1459234251503-5

label.error.missingservletrequestparameterexception
  • 0
    Используйте инструменты разработчика вашего браузера, чтобы определить, является ли это проблемой, ориентированной на клиента или сервер.
  • 0
    Его проблема на стороне сервера. в состоянии видеть почтовые параметры в firebug
Показать ещё 3 комментария
Теги:
spring

1 ответ

2

Укажите аргумент params

Разбейте свой http-вызов по-другому.

$http({
  url: dashboard/processSearch, 
  method: "POST",
  params: {processRequestName: 'TestName', displayName:'Test'}
});

Это правильный способ передать параметры.

Но вам может потребоваться передать заголовки аналогично параметрам

headers: {
   'Content-Type': undefined
}

Использовать фабрику

Также вы должны сделать http-запросы в заводском методе, который возвращает результат. Затем вы можете добавить эту фабрику к любому контроллеру, который вам нужен. Это где вы делаете .then часть вашего контроллера.

Ваша фабрика должна выглядеть примерно так:

angular.module('yourService', []).factory('YourFactory', [ '$http',  function($http){
  return{
    getStuff: function(){
        return // your http request
    }
  };
}]);

Затем вы можете позвонить своей фабрике в свой контроллер, как это

angular.module('yourCtrlMod', ['yourService']).controller('yourCtrl', [ '$scope','yourFactory', function($scope, yourFactory){

  yourFactory.getStuff().then(function(res){
    $scope.yourScope= res.data; 
  });

}]);

Обратите внимание, что это для получения не сообщения, в вашем случае вам придется публиковать данные и отправлять аргументы. на заводе и заполнить параметры или заголовки.

  • 0
    Спасибо, что поправили меня с угловой стороны. а как насчет весны? Есть ли какие-то изменения, необходимые там
  • 0
    Нет проблем, Nitin, я не знаком с Spring, но я надеюсь, что этот ответ подтолкнет вас в правильном направлении, удачи.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню