Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
向Java Spring控制器发送空参数的AJAX请求_Java_Jquery_Ajax_Spring - Fatal编程技术网

向Java Spring控制器发送空参数的AJAX请求

向Java Spring控制器发送空参数的AJAX请求,java,jquery,ajax,spring,Java,Jquery,Ajax,Spring,我正在尝试执行一个简单的POST请求,但由于某些原因,我的整数参数为null。这是一件非常基本的事情,但我不明白我在这里做错了什么 以下是我迄今为止所尝试的: $rootScope.addUser = function(userId) { $http.post('/addUser', { params: { user_id: userId } }

我正在尝试执行一个简单的POST请求,但由于某些原因,我的整数参数为null。这是一件非常基本的事情,但我不明白我在这里做错了什么

以下是我迄今为止所尝试的:

$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正文的一部分。