AngularJS POST 400错误请求

时间:2015-08-10 20:08:52

标签: angularjs post http-status-code-400

我正在尝试从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进行。

2 个答案:

答案 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?