2016-07-04 1 views
1

Я новичок в angularjs я связывая, чтобы узнать это, но некоторые проблемы, встающие меня, на самом деле они являются две проблемы:

Первая проблема :$http.post никогда не работает, так как нет никакого действия и ответа нет. Однако $http.get способен работать.

Вторая проблема: Из первой проблемы я называю мой успокоительный WebService по $http.get, но статус ответа веб-службы всегда -1. Хотя веб-служба может успешно выполнять свою работу и всегда отвечает за данные ответа, может ли кто-нибудь мне помочь.

это моя угловая часть:

var app = angular.module('myLogin',[]); 
        app.controller('loginController',function($scope,$http){ 
        $scope.login=function(){ 
        var username = $scope.username; 
        var password = $scope.pass; 

        $http.get("http://localhost:8080/spring/webservice/login/"+username+"/"+password) 

        .success(function(data,status){ 
        alert("data : "+data); 
         alert("Data Inserted Successfully"); 
        window.location.href = "chatScreen.html"; 

        }) 
        .error(function(data,status){ 
         alert("Status: "+status); 
         window.location.href = "login.html";  

        }); 

         } 
       }); 

и это мой веб-сервис:

/** 
    * web service part 
    */ 
    @RequestMapping(value="webservice/login/{name}/{pass}", method=RequestMethod.GET) 
    @ResponseStatus(value = HttpStatus.OK) 
    public ResponseEntity<String> weblogin(@PathVariable("name") String name, @PathVariable("pass") String pass) 
    { 
     System.out.print("username : "+name); 
     System.out.print(pass); 
     UserService service = new UserService(); 
     List<UserBean> users = service.getUsers(); 
     if(users!=null) 
     { 
      for(UserBean user : users) 
       if((user.getUsername().equals(name)) && (user.getPassword().equals(pass) )) 
       { 
        System.out.print("success"); 

        username = name; 
        //model.addAttribute("result", "Welcome to chat..");      

        MessageService messageService = new MessageService(); 
        List<MessageBean> messages = messageService.getMessage(username); 
        String userMessages=""; 
        if(messages != null) 
        { 
         for(MessageBean msg : messages) 
          userMessages +="\n"+msg.getSender() + ": " + msg.getMessage()+" \n"; 
        } 
        else 
         userMessages +="You have no Messages !"; 

        //model.addAttribute("whoSendToMe", userMessages); 

        return new ResponseEntity(HttpStatus.OK); 
       } 
     } 

     return new ResponseEntity<String>("faild", HttpStatus.NOT_FOUND); 

    } 
+0

разместить свой код, пожалуйста – pzelenovic

+0

сделали вы проверили службу с другим инструментом, чтобы узнать, может ли он получать запросы? –

+0

no i didn, t test it –

ответ

2

см это может быть, это даст вам представление, как подойти к вашей проблеме: -

$http({ 
method: 'GET', 
url: '/someUrl' 
}).then(function successCallback(response) { 
    // this is asynchronous call back 
    // you will get your data here comming from rest 
}, function errorCallback(response) { 
    // called asynchronously if an error occurs 
}); 

Поделитесь своим кодом, поэтому мы постараемся его решить.

+0

Я пробовал, но никаких изменений по результату –

+0

он всегда вызывает ошибку. Функция callback. Я не знаю, где ошибка –

+0

Возможно, URL-адрес неверен, поэтому он вызывает ошибку или может быть методом '$ http не является таким же, как метод REST. и я предлагаю вам, если вы не хотите каких-либо хитрых данных, затем используйте метод '.factory' или' .service' –

0

Если вы используете метод GET и получаете возвращаемый -1, это означает, что вы указали неверный URL-адрес.

А затем методом POST, вы должны использовать этот синтаксис:

return $http({ 
      method: 'POST', 
      url: 'index.php/email/createDeliverable', 
      data: $.param({ 
       csrfTokenName: --your token--, 
       userName: user.name, 
       password: password 
      }), 
      headers: { 'Content-Type': 'application/x-www-form-urlencoded' } 
     }); 

Не забудьте добавить заголовки часть.

Ваш сервер может потребоваться проверка лексемы CSRF, в этом случае вам нужно пройти, см ип мой пример: csrfTokenName: --Новости token--,

+0

, насколько возможно, что URL-адрес неверен, когда он достигает веб-службы, и вставьте данные в базу данных. –

+0

. проект, над которым я работаю, я получаю -1 из службы, возвращающей json-файл, где я указал неверный адрес. Я думаю, это может быть то же самое, когда служба действительно не возвращает значение. У вас, вероятно, есть служба для написания в БД и отдельная для чтения? – gianni

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