这是我的angularjs代码
$http({
method : "POST",
url : '/jobseeker',
data : {
"email" : $scope.userdata.uemail,
"firstname" : $scope.userdata.fname,
"lastname" : $scope.userdata.lname,
"password" : $scope.userdata.upassword
}
}).success(function(data) {
console.log(data);
//state.go(to verification page for job seeker
})
这是我的休息控制器映射
@RequestMapping(value = "/jobseeker", method = RequestMethod.POST)
public ResponseEntity signUp(@RequestParam("email") String email,
@RequestParam("firstname") String firstname,
@RequestParam("lastname") String lastname,
@RequestParam("password") String password) { ....}
我收到400错误请求错误,指出缺少参数电子邮件
我也试过在我的代码中添加以下标题仍然会出现同样的错误
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
答案 0 :(得分:0)
我不确定你是否解决了这个问题,但我试图发布一个标准方法来从AngularJS发布POST,但我确信没有其他方法可以做到这一点。
在AngularJS中,一个将POST调用保存到Controller的函数。
$scope.httpFunction = function() {
var data = new FormData();
data.append('email', $scope.userdata.uemail);
data.append('firstname', $scope.userdata.fname);
// Append as many parameters as needed
$http.post('jobseeker', data, {
withCredentials : false,
transformRequest : angular.identity,
headers : {
'Content-Type' : undefined
}
}).then(function(response){
// ANything you wanted to do with response
})
}
始终确保参数数量匹配,并且Angular和Controller
中的参数名称相同答案 1 :(得分:0)
更好地使用模型并将其保存在 @RequestBody 中。
例如:
class Model {
public Model(){}
String email;
String firstname;
String lastname;
String password;
// getters/setters and constructor with parameters
}
然后在控制器中...
signUp(@RequestBody Model model)...
祝你好运