2015-10-08 15 views
0

Я хочу использовать мой веб-сервис без php. С помощью Angular как я могу выполнить веб-сервис с параметром ввода формы. Это настройка REST. И я попробовал мой запрос с POSTMANкак я могу передать свои данные в угловой адрес http:

mY WEB PAGE : 


---------------------------------------------------------------------------- 


<!DOCTYPE html> 
<html> 
    <head> 
     <meta content="text/html; charset=windows-1252" http-equiv="content-type"> 
     <title>connexion.html</title> 
     <script type="text/javascript" src="angular.js"></script> 
    </head> 

    <form ng-submit ng-controller="valController" data-action="http://localhost:8080/globalAlfWs/cxf/user/login"> 

     <input type="text" name="login" ng-model="login"> 
     <input type="text" name="password" ng-model="password"> 
     <input type="submit" id="submit" value="Submit"> 

    </form> 
</html> 

// МОЯ CONTROLLER со ссылкой веб-службы:

var app = angular.module("app",[]); 
    app.controller('valController',function($scope, $http){ 
     $scope.submit = function(){ 
      $http({ 
       method:'POST', 
            url:"http://localhost:8080/globalAlfWs/cxf/user/login", 
             data : { 
              login: $scope.login, 
              password: $scope.password 
             }, 
             headers: { 
              'Content-Type': 'application/json' 
             } 
            }) 
              .success(function(response){ 
               $scope.result = response; 
               console.log(result); 
              }) 
              .error(function(){ 
               console.log("error"); 
              }); 
           }; 
          }); 
---------------------------------------------------------------------------- 
This is my result with POSTMAN : 

{ 
    "results": { 
    "sessionId": "TICKET_9aee7b3f48fc12e558e6f56b1ede1aea0428cf78", 
    "success": true, 
    "userName": "login" 
    } 
} 

Мой JS скрипку: code

EDIT/

var appel = angular.module("appel",[]); 

appel.controller ('ValController', функция ($ сфера, $ HTTP) {

var data = new FormData; 

    $scope.submit = function(){ 
     data.append("login",$scope.login); 
     data.append("password",$scope.password); 
     $http({ 
      method:'POST', 
      url:"http://localhost:8080/globalAlfWs/cxf/user/login", 
      data : data, 
      headers: { 
       'Content-Type': undefined 
      } 
     }) 
      .success(function(response){ 
       $scope.result = response; 
       console.log($scope.result); 
      }) 
      .error(function(){ 
       console.log("error"); 
      }); 
    }; 
}); 

Он работает !!

+0

вам нужно 'нг-click' позвонить представить. –

+0

Пожалуйста, сделайте скрипку и plunker и дайте более подробную информацию. – user944513

ответ

0

Это должно работать для вас, вы пропали без вести призыв к вашему представить функции на ngSubmit:

<!DOCTYPE html> 
<html> 
    <head> 
     <meta content="text/html; charset=windows-1252" http-equiv="content-type"> 
     <title>connexion.html</title> 
     <script type="text/javascript" src="angular.js"></script> 
    </head> 

    <form ng-submit="submit()" ng-controller="valController"> 

     <input type="text" name="login" ng-model="login"> 
     <input type="text" name="password" ng-model="password"> 
     <input type="submit" id="submit" value="Submit"> 

    </form> 
</html> 

JS:

$scope.submit = function(){ 
     var data = new FormData; 
     data.append("login", $scope.login); 
     data.append("password", $scope.password); 
     $http({ 
      method:'POST', 
      url:"http://localhost:8080/globalAlfWs/cxf/user/login", 
      data : data, 
      headers: { 
       'Content-Type': undefined 
      } 
     }) 
      .success(function(response){ 
       $scope.result = response; 
       console.log($scope.result); 
      }) 
      .error(function(){ 
       console.log("error"); 
      }); 
    }; 
}); 

Позвольте мне знать, если вы получаете какие-либо другие вопросы.

+0

Это не работает, console.log не активирован. – kakame91

+0

действительно ли он переходит в функцию отправки? – Wawy

+0

Я добавил свою скрипту js, и да, это в функции отправки – kakame91

0

Вам необходимо избавиться от атрибута data-action, если вы используете кнопку submit и submit действие на форме. В противном случае кнопка отправки инициирует отправку формы на URL-адрес действия, и ваш запрос ajax не работает.

Вот изменения, которые я внесла в ваш jsFiddle, и он работает с URL-адресом Mock, который я использовал.

<form ng-submit ng-controller="valController" > 
$scope.submit = function(){ 
     $http({ 
      method:'POST', 
      url:"http://jsonplaceholder.typicode.com/posts", 
      data : { 
       login: $scope.login, 
       password: $scope.password 
      }, 
      headers: { 
       'Content-Type': 'application/json' 
      } 
     }) 
      .success(function(response){ 
       $scope.result = response; 
       console.log($scope.result); 
      }) 
      .error(function(){ 
       console.log("error"); 
      }); 
    }; 
+0

Ошибка HTTP 415 Неподдерживаемый тип носителя из-за «Content-type». Я не понимаю, почему ... – kakame91

+0

Похоже, ваш сервер не принимает данные JSON для этого запроса. Какой сервер вы используете, и ваш парсер запросов настроен на поддержку JSON? –

+0

Я использую сервер TomCat. Но когда я изменяю параметр содержимого для «неопределенного», он работает ... – kakame91

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