2016-02-16 4 views
0

Я получаю null, когда отправляю POST. Пожалуйста, кто-нибудь знает, как передать значение с помощью Angular, используя @HeaderParam в Джерси?POST трикотаж с аннотацией HeaderParam

У меня есть это в бэкэндом:

@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); 
    } 

и это в переднем конце, используя угловые:

$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 из нулевых данных.
Может ли кто-нибудь помочь мне, используя аннотации HeaderParam, PathParam или FormParm в Джерси?

ответ

1

data выслан как тело запроса. То, что вы действительно хотите, это headers.
From the docs:

  • данные - {string|Object} - Данные для отправки в качестве данных запроса сообщений.
  • headers - {Object} - Карта строк или функций, которые возвращают строки, представляющие HTTP-заголовки для отправки на сервер. Если возвращаемое значение функции равно null, заголовок не будет отправлен. Функции принимают объект конфигурации в качестве аргумента.

Пример:

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

Привет @gustavohenke Я получаю эту ошибку. Имя поля заголовка запроса запроса не разрешено в заголовках заголовка Access-Control-Allow-Headers в предполетном ответе. – Akram

+0

Итак, у вас есть еще одна проблема: вам нужно включить CORS на своем сервере. – gustavohenke

+0

Я сделал, но та же ошибка, je ne sais pas ce que signifie cette erreur имя пользователя не разрешено – Akram

0

При использовании @HeaderParam, вы должны передать значения из .js с помощью headers: { 'something': 'anything' }. Как я вижу сейчас, вы используете data : {username: "akram",password:"yes"}. попробуйте использовать headers: { 'something': 'anything' } вместо этого.

Пожалуйста, попробуйте заголовок, надейтесь, что он решит вашу нулевую проблему.

Смежные вопросы