> 웹 프론트엔드 > JS 튜토리얼 > jQuery AJAX 요청에서 내 사용자 정의 헤더가 'Access-Control-Request-Headers'로 나타나는 이유는 무엇입니까?

jQuery AJAX 요청에서 내 사용자 정의 헤더가 'Access-Control-Request-Headers'로 나타나는 이유는 무엇입니까?

DDD
풀어 주다: 2024-11-05 01:55:02
원래의
645명이 탐색했습니다.

Why Are My Custom Headers Appearing as

액세스 제어 요청 헤더: jQuery를 사용한 AJAX 헤더 추가 이해

jQuery AJAX 요청에서 사용자 정의 헤더를 추가하여 요청 향상 가능 맞춤화. 그러나 일부 헤더는 예상된 형식으로 표시되지 않을 수 있습니다. 이 문서에서는 사용자 정의 헤더가 "Access-Control-Request-Headers"로 표시되는 이유를 설명하는 것을 목표로 합니다.

교차 출처 요청이 이루어지면 브라우저는 OPTIONS 메서드를 사용하여 실행 전 요청을 수행합니다. 이 실행 전 요청은 실제 요청이 허용되는지 여부를 결정합니다. 이 실행 전 요청 중에 브라우저는 실제 요청이 사용할 HTTP 메소드와 헤더를 나타내는 헤더를 보냅니다.

이러한 헤더 중 하나가 "Access-Control-Request-Headers" 헤더입니다. 실제 요청에 포함될 사용자 정의 헤더를 나열합니다. 이는 이러한 사용자 정의 헤더를 보내려면 브라우저가 서버로부터 권한을 얻어야 하기 때문입니다.

따라서 AJAX POST 요청에서 사용자 정의 헤더를 보내면 "Access-Control-Request-"에 추가됩니다. 헤더" 헤더는 비행 전 OPTIONS 요청에 포함됩니다. 이는 교차 출처 보안 취약점을 방지하기 위한 브라우저 동작입니다.

사용자 정의 헤더 문제 해결

실제 요청에 사용자 정의 헤더를 직접 포함하려면 다음이 필수적입니다. 실행 전 요청을 처리하고 지정된 사용자 정의 헤더에 대한 권한을 부여하도록 서버를 구성합니다. 이 구성은 서버마다 다르며 적절하게 설정하려면 권한이 필요합니다.

jQuery의 예

제공된 jQuery 예는 사용자 정의 헤더를 설정하는 방법을 보여줍니다.

$.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));
  }
});
로그인 후 복사

이러한 지침을 따르면 개발자는 AJAX 요청에 사용자 정의 헤더를 효과적으로 추가하여 브라우저가 원본 간 보안 프로토콜을 준수하도록 할 수 있습니다.

위 내용은 jQuery AJAX 요청에서 내 사용자 정의 헤더가 'Access-Control-Request-Headers'로 나타나는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿