programing

응답 헤더를 angularjs로 읽는 방법

newsource 2023. 3. 1. 11:14

응답 헤더를 angularjs로 읽는 방법

서버는 다음과 같은 종류의 헤더를 반환합니다.Content-Range:0-10/0:

여기에 이미지 설명 입력

이 헤더를 비스듬히 읽으려고 했지만 잘 되지 않았다.

var promise = $http.get(url, {
    params: query
}).then(function(response) {
  console.log(response.headers());
  return response.data;
});

인쇄만 하면 된다.

Object {content-type: "application/json; charset=utf-8"}

콘텐츠 범위 헤더에 액세스하는 방법을 알고 계십니까?

를 사용합니다.headers성공 및 오류 콜백 변수

문서로부터.

$http.get('/someUrl').
  success(function(data, status, headers, config) {
    // this callback will be called asynchronously
    // when the response is available
  })
  .error(function(data, status, headers, config) {
    // called asynchronously if an error occurs
    // or server returns response with an error status.
  });

같은 도메인에 있는 경우 응답 헤더를 다시 가져올 수 있습니다.교차 도메인인 경우 서버에 헤더를 추가해야 합니다.

Access-Control-Expose-Headers: content-type, cache, ...

간단하게 시험해 보는 것은 어떨까요?

var promise = $http.get(url, {
    params: query
}).then(function(response) {
  console.log('Content-Range: ' + response.headers('Content-Range'));
  return response.data;
});

특히나, 당신이 반품하고 싶다면promise약속 사슬의 일부일 수도 있어요

무함마드의 답변을 바탕으로 업데이트...

$http.get('/someUrl').
  success(function(data, status, headers, config) {
    // this callback will be called asynchronously
    // when the response is available
    console.log(headers()['Content-Range']);
  })
  .error(function(data, status, headers, config) {
    // called asynchronously if an error occurs
    // or server returns response with an error status.
  });

답변에 관한 $http 문서에서 인용한 Eugene Retunsky의 답변에 덧붙여:

응답 개체에는 다음 속성이 있습니다.

  • 데이터{string|Object}– 변환 기능을 통해 변환된 응답 본문.

  • 상태{number}– 응답의 HTTP 상태 코드.

  • 헤더{function([headerName])}– 헤더 게터 기능.

  • 설정{Object}– 요청 생성에 사용된 설정 개체.

  • 상태 텍스트 –{string}– 응답의 HTTP 상태 텍스트.

$resource(v1.6) 인수 콜백 순서는 위와 같지 않습니다.

성공 콜백은 다음과 같이 호출됩니다.(value (Object|Array), responseHeaders (Function), status (number), statusText (string))arguments. 여기서 값은 채워진 리소스 인스턴스 또는 수집 개체입니다.에러 콜백이 호출됩니다.(httpResponse)논쟁.

response.headers();

모든 헤더를 알려드립니다(체불 및 세관).날 위해 일했어!!

여기에 이미지 설명 입력

여기에 이미지 설명 입력

참고. 동일한 도메인에서만 테스트했습니다.추가가 필요할 수 있습니다.Access-Control-Expose-Headers서버상의 헤더를 지정합니다.

cors의 경우 응답 헤더는 숨겨져 있습니다.응답 헤더를 추가하여 각도가 헤더를 javascript에 노출하도록 지시해야 합니다.

// From server response headers :
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
header("Access-Control-Allow-Headers: Origin, X-Requested-With, 
Content-Type, Accept, Authorization, X-Custom-header");
header("Access-Control-Expose-Headers: X-Custom-header");
header("X-Custom-header: $some data");

var data = res.headers.get('X-Custom-header');

출처 : https://github.com/angular/angular/issues/5237

MDN 커스텀헤더는 디폴트로 공개되지 않습니다.서버 관리자는 "access-control-allow-origin"과 같은 방법으로 "Access-Control-Expose-Headers"를 사용하여 이들을 노출해야 합니다.

자세한 내용은 이 MDN 링크를 참조하십시오[ https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Expose-Headers ]

언급URL : https://stackoverflow.com/questions/28805589/how-to-read-response-headers-in-angularjs