2014-11-13 2 views
0

jquery에 작동 코드가 있습니다. request.setRequestHeader("X-CSRF-Token", $.cookie('token'));을 사용하는 토큰을 사용하여 양식의 데이터를 게시합니다. 어떻게 양식 데이터를 ng-model을 사용하여 $scope으로 가져 오는 지 알지만 아래의 submit_this() 함수를 각도 호환 기능으로 변환하려면 어떻게해야합니까? 요청 헤더가있는 각도로 Ajax 포스트를 실행하는 방법

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; 
} 

답변

1

당신은 그렇게 $ HTTP 서비스를 사용할 수 있습니다.

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 
       }); 
    }; 
}); 

Here is angular $http document.

+1

@esafwan을하거나 jsfiddle하는 코드를 게시 할 수 있습니다 : 당신은 더 나은 서비스, 데모 코드를 소유 만들 것입니다. 그래서 나는 그것에 서비스 데모를 만들 수 있습니다. –

+0

아직이 코드를 테스트 할 수 없습니다. 테스트하자마자 업데이트됩니다. 방향 주셔서 감사합니다. – esafwan

+0

@esafwan 나의 기쁨. 기다릴게. :) –