我使用角度js将参数发布到spring应用程序。
在角侧
$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 :(得分:2)
以不同方式打破您的http通话。
$http({
url: dashboard/processSearch,
method: "POST",
params: {processRequestName: 'TestName', displayName:'Test'}
});
这是传递params的正确方法。
但您可能需要以类似于params的方式传递标题
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;
});
}]);
请注意,这是针对get而不是帖子,在您的情况下,您必须发布数据并发送参数。到工厂并填写参数或标题。