"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > jQuery를 사용하여 AJAX POST 요청에서 사용자 정의 헤더를 보내는 방법은 무엇입니까?

jQuery를 사용하여 AJAX POST 요청에서 사용자 정의 헤더를 보내는 방법은 무엇입니까?

2024년 11월 13일에 게시됨
검색:438

How to Send Custom Headers in AJAX POST Requests with jQuery?

jQuery를 사용한 AJAX POST 요청의 사용자 정의 헤더

jQuery로 시작된 AJAX POST 요청에서는 사용자 정의 헤더를 포함할 수 있습니다. 그러나 헤더를 추가하는 메커니즘은 일반적인 접근 방식과 다릅니다.

예제와 같이 헤더를 지정하는 경우:

$.ajax({
    type: 'POST',
    url: url,
    headers: {
        "My-First-Header":"first value",
        "My-Second-Header":"second value"
    }
}).done(function(data) {
    alert(data);
});

이해컨대 헤더는 다음과 같이 전송될 것으로 예상됩니다.

My-First-Header: first value
My-Second-Header: second value

그러나 브라우저 보안 조치로 인해 초기 요청에서 사용자 정의 헤더 값을 직접 보내는 것이 방지됩니다. 대신 Access-Control-Request-Headers 헤더에 배치됩니다. 이는 사전 요청으로 알려진 보안 메커니즘입니다.

후속 요청에 실제 헤더 값이 포함되도록 하려면 서버에서 필요한 CORS(Cross-Origin Resource Sharing) 헤더를 구성해야 합니다.

이 문제에 대한 해결책은 주어진 샘플 코드에 표시된 것처럼 다른 방식으로 헤더를 보내는 것입니다.

$.ajax({
  type: "POST",
  beforeSend: function(request) {
    request.setRequestHeader("Authority", authorizationToken);
  },
  url: "entities",
  data: "json="   escape(JSON.stringify(createRequestObject)),
  processData: false,
  success: function(msg) {
    $("#results").append("The result ="   StringifyPretty(msg));
  }
});

이 접근 방식은 실제로 Access-Control-Request-Headers 배치를 우회하여 요청 헤더 값을 직접 설정합니다. 서버 구성 없이 초기 요청과 함께 사용자 정의 헤더를 보내는 방법을 제공합니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3