带有HeaderParam注释的POST球衣

时间:2016-02-16 11:37:11

标签: java angularjs jersey

发送POST时我得到null。请有人知道如何在泽西岛使用@HeaderParam使用Angular传递价值?

我在后端有这个:

 @POST
    @Consumes(MediaType.APPLICATION_JSON)
    @Produces(MediaType.APPLICATION_JSON)
    public Users loginUser(@HeaderParam("username")String username,@HeaderParam("password") String password){
        System.out.println("What happen"+userService.loginService(username, password));
       return userService.loginService(username, password);
    }

并且这在前端,使用Angular:

 $scope.getUserFunction = function () {
      $http({
        method  : 'POST',
        url     : 'http://localhost:8080/JersyBackEnd/resources/login'+data,
        contentType:'application/json',
        data    : {username: "akram",password:"yes"},
      })
        .then(function(data) {
          console.log(data);
        });
    };

由于空数据,我得到204 任何人都可以帮我,在Jersey中使用HeaderParam,PathParam或FormParm注释吗?

2 个答案:

答案 0 :(得分:1)

data作为请求正文发送。你真正想要的是headers From the docs

  
      
  • 数据 - {string|Object} - 要作为请求消息数据发送的数据。
  •   
  • 标头 - {Object} - 返回表示要发送到服务器的HTTP标头的字符串的字符串或函数的映射。如果函数的返回值为null,则不会发送标头。函数接受配置对象作为参数。
  •   

示例:

$http({
  ...
  headers: {
    username: "akram",
    password: "yes"
  }
})

答案 1 :(得分:0)

使用@HeaderParam时,必须使用headers: { 'something': 'anything' }从.JS传递值。正如我现在所知,您正在使用data : {username: "akram",password:"yes"}。尝试使用headers: { 'something': 'anything' }代替此。

请尝试标题,希望它能解决您的空问题。