Search code examples
javascriptangularjsangularjs-servicehttp-get

Create a $http.get properly


I would like to create a $http.get service properly but I have trouble with services in AngularJS. I create this code and It works but all the code is in the controler :

var monApp = angular.module('monApp', []);
monApp .controller('PhoneListCtrl', ['$scope', '$http',
    function($scope, $http) {
        $http.get('http://port:serveur/fichier.xml').then(function(response) {
            var x2jObj = X2J.parseXml(response.data); //X2J.parseXml(xmlDocument, '/');
            var tableauJSON = X2J.getJson(x2jObj);
        }, function(a, b, c) {
            alert("Impossible de télécharger le fichier");
        });
    }
]);

Can you help me to create it in service ? Thanks.


Solution

  • This is the perfect solution, the controler :

    var app = angular.module("myApp", []);
    
    app.controller("MainCtrl", ["$scope", "userService",
        function($scope, userService) {
            userService.getData();
        }
    ]);
    

    The web service :

     app.service("userService",["$http",
            function($http) {
                _this = this;
                this.getData = function() {
                    $http.defaults.headers.common = {"Access-Control-Request-Headers": "accept, origin, authorization"};
                    $http.defaults.headers.common['Authorization'] = 'Basic ' + window.btoa('username' + ':' + 'password');
                    $http.get('http://YourServer:YourPort/rest/api/2/auditing/record').
                    success(function(data) {
                        console.log(data);
                    });
                }
            }
        ]);