AngularJS 의 ng Http Request 와 response 형식 변환 방법

1816 단어
이 사례 는 AngularJS 의 ng Http Request 와 response 형식 전환 방법 을 설명 한다.여러분 께 참고 하도록 공유 하 겠 습 니 다. 구체 적 으로 는 다음 과 같 습 니 다.
angular 가 Single Page Application 으로 추천 하 는 상호작용 방식 은 당연히 json 기반 ajax 호출 입 니 다.그러나 오늘 말 하고 자 하 는 것 은 불행 하 게 도 남아 있 거나 통제 할 수 없 는 서비스 에서 일 하고 있 습 니 다. 이 서 비 스 는 비 json 제출 방식 (일반적인 폼 (form) 제출 또는 다른 사용자 정의 데이터 형식 일 수도 있 습 니 다) 을 바탕 으로 하 는 것 입 니 다. 그러면 저 희 는 ng 내부 $http 기본 request / response 형식 전환 방식 만 바 꿀 수 있 습 니 다.
다행히도 ng $http 는 우리 에 게 다양한 사용 가능 한 데이터 형식 을 제공 합 니 다 (아래 demo 는 form 제출 방식 을 예 로 들 것 입 니 다).
* * 일부 단독 http request 설정:
http ajax 방식 의 마지막 매개 변 수 는 http 설정 정보 입 니 다. transformRequest 를 포함 하여 transformRequest 를 이용 하여 ajax 에서 데 이 터 를 보 내기 전에 데이터 형식 을 바 꿀 수 있 습 니 다. 예 를 들 어 아래 demo:

$http.post("/url", {
   id: 1,
   name: "greengerong"
  }, {
   transformRequest: function(request) {
    return $.param(request);
  }
});


jQuery 의 $. param 을 이용 하여 폼 제출 방식 의 형식 을 바 꿉 니 다. 그래서 우리 가 볼 수 있 는 request body 는:

id=1&name=greengerong


* * * 전체 app 에 대한 http request 설정:
http 의 데이터 변환 형식 을 설정 해 야 한다 면 config 단계 에서 $http Provider 의 기본 행동 을 설정 할 수 있 습 니 다.

angular.module("app", [])
.config(["$httpProvider", function($httpProvider) {
   $httpProvider.defaults.transformRequest = [
    function(request) {
     return $.param(request);
    }
   ];
  }
]);


이렇게 하면 우 리 는 쉽게 form 제출 방식 으로 바 뀔 수 있다.
마찬가지 로 $http 도 우리 에 게 transformResponse 방식 을 제공 합 니 다. 우 리 는 자신의 response 전환 을 만 들 수 있 습 니 다. 예 를 들 어 json 전에 사용자 정의 접 두 사 를 넣 어 json array 공격 을 방지 하 는 등 입 니 다.
본 고 에서 말 한 것 이 여러분 의 AngularJS 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기