Я использую угловые 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
Разбейте свой 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;
});
}]);
Обратите внимание, что это для получения не сообщения, в вашем случае вам придется публиковать данные и отправлять аргументы. на заводе и заполнить параметры или заголовки.