2015-12-29 8 views
3

Я хочу получить доступ к методу POST с моего сервера, но когда я зарегистрировал ответ, он всегда возвращает статус = 0, кто-нибудь может мне помочь или дать мне совет? примечание: Я попробовал мой метод в Почтальон, и это работает так или иначе

Это мой contorller

nameApp.controller('loginCtrl', ['$scope','$location','Flash','$sessionStorage', '$cookieStore','$http',function (scope,location,Flash,sessionStorage,cookieStore,http) { 

scope.nim=''; 
scope.pass=''; 
if(cookieStore.get('current')!=null){ 
    location.path('/homepage') 
} 
scope.login = function() { 

    if((scope.nim=='')){ 
     Flash.create('danger', 'Invalid Username/Password', 'custom-class'); 
    }else{ 

     http.post('http://localhost:8084/iec3/rest/users/login',{'username':'admin','password':'bukanadmin'},{headers: {'Content-Type': 'application/json'} 
     }).then(function successCallback(response) { 
       console.log("GREAT"); 
       }, function errorCallback(response) { 
       console.log(response) 
       }); 
    } 
} 
}]); 

Это метод Войти с моего контроллера

@Path("/login") 
@POST 
@Consumes(value = MediaType.APPLICATION_JSON) 
@Produces(value = MediaType.APPLICATION_JSON) 
public Response login(User user) { 
    UserDao ud = new UserDao(); 
    User dariDB = ud.login(user.getUsername(), user.getPassword()); 
    dariDB.setPassword(""); 
    return Response.ok(dariDB) 
      .header("Access-Control-Allow-Origin", "*") 
      .header("Access-Control-Allow-Headers", "origin, content-type, accept, authorization") 
      .header("Access-Control-Allow-Credentials", "true") 
      .header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, HEAD") 
      .header("Access-Control-Max-Age", "1209600") 
      .build(); 
} 

Это ошибка, когда я попытайтесь зарегистрировать ответ

Объект {data: null, status: 0, headers: dd/<(), config: Object, statusText: ""}

+0

Если вы используете инструменты сети разработчиков, какой ответ вы получаете на эту просьбу? Добавляются ли ваши заголовки в ответ? Какой код статуса вы получаете? – Khior

+0

Ответ от запроса: json, как добавить заголовки? Код состояния равен 0, я не знаю, почему это статус возврата 0, а данные равны нулю –

ответ

0

Вы должны проверить, если ваш запрос достигает к серверу. Вызывается ли ваш метод входа в систему? Если вы находитесь на одном и том же хосте, вам не нужно передавать полный URL-адрес, вы можете напрямую вызвать свой api через его путь.

Что касается новичка, я бы рекомендовал вам избегать $http методов быстрого доступа. Для лучшего понимания и удобочитаемости, вы должны использовать $http как

$http({ 
    method: 'POST', 
    url: 'http://localhost:8084/iec3/rest/users/login', 
    data: { 
    username:'admin', 
    password:'bukanadmin' 
    }, 
    headers: { 
    'Content-Type': 'application/json' 
    } 
}).then(function successCallback(response) { 
    console.log("GREAT"); 
}, function errorCallback(response) { 
    console.log(response) 
}); 
+0

Я попытался вызвать метод входа в систему, используя POSTMAN, и это хорошо работает. Ах .. И я пробовал этот формат $ http, но ничего не изменилось .. –

0

Ваш запрос от ajax, похоже, не влияет на ваш метод контроллера, статус 0 обычно возвращается, когда запрос отменяется. Проверьте значение @path в методе контроллера и отображение http://localhost:8084/iec3/rest/users/login.

Для получения более подробной информации о статусе 0 http://www.w3.org/TR/XMLHttpRequest/#the-status-attribute

+0

Хорошо, я попробую, и как убедиться, что мой запрос попал в метод контроллера ,? Я пробовал на почтовом приложении для этого URL-адреса и метода, это хорошо работает .. Я сейчас запутался .. Спасибо в любом случае –

+0

Вы также можете использовать завиток, чтобы проверить возвращаемый возвращаемый API, иначе измените значение @post на @path ("/ iec3/rest/users/login"). Подробнее о curl http://curl.haxx.se/docs/httpscripting.html – moonrikaa

+0

хорошо, я попробую –