¿Cómo ejecuto una publicación ajax con encabezado de solicitud en Angular?

Tengo un código de trabajo en jquery, donde publico datos desde un formulario con un token utilizando request.setRequestHeader("X-CSRF-Token", $.cookie('token')); . Sé cómo obtener los datos del formulario en un $scope usando ng-model , pero ¿cómo convierto la función submit_this() continuación a una función compatible angular?

El Código Jquery:

 $("body").on("click", "#login", function() { var url = "http://localhost/lab/theapp/api/user/login.json"; var name = $('#user').val(); var pass = $('#pass').val(); var data = 'username=' + encodeURIComponent(name) + '&password=' + encodeURIComponent(pass); var type = "post"; submit_this(type,data,url); }); //the function that need to be re-written for AngularJs function submit_this(type,data,url) { try { $.ajax({ url: url, type: type, data: data, dataType: 'json', beforeSend: function (request) { request.setRequestHeader("X-CSRF-Token", $.cookie('token')); }, error: function(XMLHttpRequest, textStatus, errorThrown) { }, success: function (data) { if (data.sessid){ var sessid = data.sessid; var session_name = data.session_name; var token = data.token; jQuery.cookie("token", token); } console.log(data); } }); } catch (error) { console.log(error) } return false; } 

Puedes usar el servicio $ http para hacer eso. Será mejor que crees tu propio servicio, código Demo:

 var demoApp = angular.module("DemoApp"); demoApp.controller("yourcontroller", function($scope, yourService){ yourService.postData("http://your/url", {"X-CSRF-Token": $scope.token}) .success(function(data){ //handle success response here }).error(function(error){ //handle error response here }); }); demoApp.service("yourService", function($http){ this.postData = function(url, _headers){ return $http({ method: "POST", url: url, headers: _headers }); }; }); 

Aquí está el documento angular $ http.