向Java Spring控制器发送空参数的AJAX请求
我正在尝试执行一个简单的POST请求,但由于某些原因,我的整数参数为null。这是一件非常基本的事情,但我不明白我在这里做错了什么 以下是我迄今为止所尝试的:向Java Spring控制器发送空参数的AJAX请求,java,jquery,ajax,spring,Java,Jquery,Ajax,Spring,我正在尝试执行一个简单的POST请求,但由于某些原因,我的整数参数为null。这是一件非常基本的事情,但我不明白我在这里做错了什么 以下是我迄今为止所尝试的: $rootScope.addUser = function(userId) { $http.post('/addUser', { params: { user_id: userId } }
$rootScope.addUser = function(userId) {
$http.post('/addUser', {
params: {
user_id: userId
}
}).then(function(result) {
$rootScope.userId = undefined;
});
};
控制器
@PostMapping("/addUser")
public void addTournament(@RequestParam(required = false) final Integer userId) {
LOG.info("addUser: {}" , userId);
}
我也尝试过做@RequestParam(name=“user_id”)final Integer userId
,但即使这样也不行
最后,我将删除'required=false'参数,但我暂时将其保留在那里只是为了验证userId是否确实为null
正在从用户抓取输入,他们输入一个数字并单击一个按钮。@RequestParam名称与发布的属性名称不匹配:user\u idvsuserId。使用
@RequestParam(name=“user_id”)final Integer userId
匹配它们,或者使用相同的请求属性和@RequestParam
名称
[编辑]
当我阅读params:{…}
时,我希望它们是额外的请求参数,而不是POST主体的一部分。您可以尝试使用以下方法获取数据:
$http.post('/addUser', { userId: userId }
并使用以下@PostMapping
:
@PostMapping(/addUser)
公共void addTornament(@RequestBody User){
LOG.info(“addUser:{}”,user.getUserId());
}
...
类用户{
私有字符串用户标识;
//接二连三
}
谢谢你的回复,我也试过了,但由于某种原因还是没有成功。我所做的更改是:@RequestParam(name=“user_id”)final Integer userId,但现在它不打印日志,因此我假设出于某种原因它仍然为null……我更新了我的答案,我将params
属性误认为是其他请求参数,而不是POST正文的一部分。