我正在尝试从Angular控制器执行POST,当我的Java RestController期望没有参数(即下面的save
的签名只是save()
)时,它可以工作,但是一旦我告诉它期望一个参数并尝试在Angular的POST请求中发送它,它失败了400 Bad Request
。是否需要采取措施才能从Angular POST中正确发送数据?
@RestController
@RequestMapping("/person")
public class PersonController {
@RequestMapping(method = RequestMethod.POST)
public Person save(@RequestParam Long personnelId) {
System.out.println("SUCCESSFULLY POSTED");
return null;
}
}
POST请求:
$http({
url: 'http://localhost:8080/person',
method: 'POST',
data: {personnelId: 4}
}).success(function() {
// do something on success
});
如果相关的话,这将通过服务器端的Spring Security和Hibernate进行。
答案 0 :(得分:0)
您可能需要在角度POST中将内容类型设置为application / json。
$http({
url: 'http://localhost:8080/person',
method: 'POST',
contentType: "application/json",
data: {personnelId: 4}
}).success(function() {
// do something on success
});
我猜测我还没有真正使用过Spring。另请检查https://stackoverflow.com/a/26146813/559095
答案 1 :(得分:0)
aconkey
您是否尝试过映射您的param的名字?
@RequestParam(value="personnelId") Long personalId
您是否配置了任何CORS?