> 웹 프론트엔드 > JS 튜토리얼 > Cross-Origin 요청 시 'No 'Access-Control-Allow-Origin' Header Present' 오류가 발생하는 이유는 무엇입니까?

Cross-Origin 요청 시 'No 'Access-Control-Allow-Origin' Header Present' 오류가 발생하는 이유는 무엇입니까?

DDD
풀어 주다: 2024-12-28 09:43:17
원래의
999명이 탐색했습니다.

Why Am I Getting a

JavaScript로 데이터를 가져올 때 "'Access-Control-Allow-Origin' 헤더가 없습니다."

교차 원본 리소스 공유(CORS) )는 웹 브라우저가 다른 도메인에 요청을 할 수 있도록 하는 메커니즘으로, 다양한 원본으로 인해 발생하는 보안 문제를 해결합니다. CORS를 활성화하려면 서버는 응답에 'Access-Control-Allow-Origin'과 같은 특정 헤더를 포함해야 합니다.

1. CORS 프록시 사용

서버에 필요한 헤더가 부족한 경우 클라이언트와 서버 간에 CORS 프록시를 구현할 수 있습니다. CORS Anywhere와 같은 이 프록시는 누락된 헤더를 포함하도록 응답을 다시 작성하여 원본 간 요청을 활성화할 수 있습니다.

2. CORS 실행 전 요청

CORS 실행 전 요청은 서버가 원본 간 요청을 허용하는지 확인하기 위해 브라우저에서 보낸 OPTIONS 요청입니다. 실행 전 트리거를 방지하려면 다음 요청을 확인하세요.

  • 자격 증명(인증 헤더)을 사용하지 마세요.
  • 사용자 정의 Content-Type 헤더 없이 서버에서 허용하는 미디어 유형을 사용하세요(예: 애플리케이션 /x-www-form-urlencoded).

3. 와일드카드 Access-Control-Allow-Origin 헤더 수정

브라우저는 자격 증명이 있는 요청에 대해 와일드카드(*) Access-Control-Allow-Origin 헤더가 있는 응답을 거부합니다. 대신 헤더 값은 요청 클라이언트의 원본과 일치해야 합니다. 이 문제를 해결하려면:

  • Origin 요청 헤더를 Access-Control-Allow-Origin 응답 헤더에 반영하도록 서버를 구성하세요.
  • false를 유발할 수 있는 Chrome CORS 플러그인을 피하세요. 긍정적.

4. 요청 및 응답의 헤더

Access-Control-Allow-* 헤더를 설정하는 JavaScript 코드(headers.append(...))에서 줄을 제거합니다. 요청에 포함하면 안 되는 응답 헤더입니다.

위 내용은 Cross-Origin 요청 시 'No 'Access-Control-Allow-Origin' Header Present' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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