>  기사  >  웹 프론트엔드  >  다른 도메인에서 XML 파일에 액세스할 때 \'No \'Access-Control-Allow-Origin\' Header\' 오류가 발생하는 이유는 무엇입니까?

다른 도메인에서 XML 파일에 액세스할 때 \'No \'Access-Control-Allow-Origin\' Header\' 오류가 발생하는 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-03 18:21:03827검색

Why Do I Get

jQuery XML 오류: "요청한 리소스에 'Access-Control-Allow-Origin' 헤더가 없습니다."

jQuery를 사용하여 다른 도메인에 있는 XML 파일에 액세스하면 "요청한 리소스에 'Access-Control-Allow-Origin' 헤더가 없습니다."라는 오류 메시지가 나타날 수 있습니다. 이 오류는 교차 출처 AJAX 호출을 제한하는 동일 출처 정책으로 인해 발생합니다.

동일 출처 정책 이해

동일 출처 정책은 다음을 시행합니다. 웹 브라우저는 요청을 수행하는 HTML 페이지와 동일한 도메인에서 호스팅되는 서비스에 대한 AJAX 호출만 허용합니다. 주어진 예에서 HTML 페이지는 http://run.jsbin.com/에서 호스팅되는 반면 XML 파일은 http://www.ecb.europa.eu/에 위치하므로 다음과 같은 교차 출처 요청이 발생합니다. 브라우저에 의해 차단됩니다.

교차 원본 요청(CORS) 활성화

교차 원본 요청을 허용하려면 서버가 응답에 적절한 헤더를 포함해야 합니다. 이러한 헤더 중 하나는 리소스에 대한 액세스가 허용되는 출처를 지정하는 Access-Control-Allow-Origin 헤더입니다.

XML 파일의 경우 ECB 서버는 필요한 CORS를 제공하지 않습니다. 헤더이므로 오류 메시지가 나타납니다. 이 문제를 해결하려면 다음 헤더를 포함하도록 서버를 구성해야 합니다.

Access-Control-Allow-Origin: http://run.jsbin.com
Access-Control-Allow-Methods: GET
Access-Control-Allow-Headers: Content-Type

실행 전 요청에 대한 참고 사항

만들 때와 같은 특정 경우 단순하지 않은 헤더가 포함된 POST 요청의 경우, 브라우저는 OPTIONS 실행 전 요청을 수행하여 서버가 특정 요청에 대해 CORS를 지원하는지 여부를 확인할 수 있습니다. 이 실행 전 요청에 대한 서버의 응답에 적절한 CORS 헤더가 포함되어 있지 않으면 기본 요청이 동일한 오류 메시지와 함께 실패합니다. 따라서 실행 전 요청과 기본 요청 모두에 대한 응답에 필요한 헤더를 포함하는 것이 중요합니다.

위 내용은 다른 도메인에서 XML 파일에 액세스할 때 \'No \'Access-Control-Allow-Origin\' Header\' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.