Angularjs 安格拉斯和弹簧休息
我使用AngularJS将一个简单的表单发布到使用SpringBoot和Rest编写的API中。每个类都用@RestController注释 我的spring控制器方法如下:Angularjs 安格拉斯和弹簧休息,angularjs,spring-mvc,spring-rest,Angularjs,Spring Mvc,Spring Rest,我使用AngularJS将一个简单的表单发布到使用SpringBoot和Rest编写的API中。每个类都用@RestController注释 我的spring控制器方法如下: @RequestMapping(method = RequestMethod.POST) public ResponseEntity<String> create(@Valid @RequestBody Modality modality) { mService.save(modality);
@RequestMapping(method = RequestMethod.POST)
public ResponseEntity<String> create(@Valid @RequestBody Modality modality) {
mService.save(modality);
return ResponseEntity.status(HttpStatus.CREATED).body("");
}
当我使用angular提交表单时,我可以看到模态对象正在填充表单数据,但是当它到达spring控制器时,模态对象的所有属性都为null,因此,我ḿ 获取以下错误:
{"status":400, "error":"Badequest",
"exception":"org.springframework.http.converter.HttpMessageNotReadableException","message":"Required request body is missing:
public org.springframework.http.ResponseEntity<java.lang.String>
cc.sporthub.controllers.ModalityController.create(cc.sporthub.models.Modality","path":"/v1/modality"}
{“status”:400,“error”:“Badequest”,
“异常”:“org.springframework.http.converter.httpmessagenoteradableexception”,“消息”:“缺少所需的请求正文:
public org.springframework.http.ResponseEntity
cc.sporthub.controllers.ModalityController.create(cc.sporthub.models.Modality,“路径”:“/v1/Modality”}
我做错了什么?我认为这是因为您使用了小写的scope.modality Javascript变量区分大小写
我认为您的问题是由于变量名使用data:$scope.Modality而不是data:$scope.modalityTry发送JSON:
data:JSON.stringify($scope.Modality)引起的;
我已经试过了,但还是出现了同样的错误…包含该值的对象是scope.modity
。但是您正在发送scope.modity
。您是对的…一个愚蠢的错误!
$scope.Modality = {id: null, name: '', active: ''}
$scope.submit = function() {
$http({
method: 'POST',
headers : { 'Content-Type': 'application/json'},
url: "http://localhost:8080/v1/modality",
data: $scope.modality
}).success(function(data) {
console.log($scope.modality);
});
}
{"status":400, "error":"Badequest",
"exception":"org.springframework.http.converter.HttpMessageNotReadableException","message":"Required request body is missing:
public org.springframework.http.ResponseEntity<java.lang.String>
cc.sporthub.controllers.ModalityController.create(cc.sporthub.models.Modality","path":"/v1/modality"}