> 웹 프론트엔드 > JS 튜토리얼 > file:// URL에서 AJAX를 통해 이미지를 가져올 때 'Access-Control-Allow-Origin에서는 원본 null이 허용되지 않습니다.'라는 메시지가 나타나는 이유는 무엇입니까?

file:// URL에서 AJAX를 통해 이미지를 가져올 때 'Access-Control-Allow-Origin에서는 원본 null이 허용되지 않습니다.'라는 메시지가 나타나는 이유는 무엇입니까?

Barbara Streisand
풀어 주다: 2024-12-31 09:16:16
원래의
926명이 탐색했습니다.

Why Am I Getting

오류: file:// URL에서 요청할 때 "Access-Control-Allow-Origin에서는 원본 null을 허용하지 않습니다."

In AJAX를 통해 Panoramio에서 이미지를 검색하려고 하면 Chrome에서 다음 오류가 반복적으로 발생합니다. "XMLHttpRequest가 [Panoramio API를 로드할 수 없습니다. URL]. Access-Control-Allow-Origin에서는 Origin null이 허용되지 않습니다. 이 오류는 다음과 같은 근본적인 문제로 인해 발생합니다.

  1. 잘못 구성된 요청 유형:
    초기 코드에서 요청 유형을 JSONP로 지정하지 않았습니다. 이후 jQuery는 도메인 간 요청에 CORS(Cross-Origin Resource Sharing)를 사용하는 XMLHttpRequest를 사용했습니다. 그러나 브라우저는 Access-Control-Allow-Origin 헤더를 통한 서버 승인이 있는 경우에만 CORS를 지원합니다.
  2. Null Origin from file:// URL:
    코드가 다음에서 실행되었습니다. file:// URL, null Origin 헤더가 생성되었습니다. 이 null Origin은 서버에서 다시 에코될 수 없으므로 인증 실패가 발생합니다.

해결책:

이러한 문제를 해결하려면 다음을 수정하세요.

  1. $.getJSON을 다음과 함께 사용하세요. callback=?:
    $.get 대신 $.getJSON을 사용하고 callback=?을 추가하세요. 요청 URL로. 이는 요청 유형을 자동으로 "jsonp"로 설정하는 JSONP를 사용하도록 jQuery에 신호를 보냅니다.
  2. HTTP 프로토콜 확인:
    코드가 HTTP URL(http: //) 파일:// 대신. 이렇게 하면 CORS가 제대로 작동할 수 있습니다.

수정된 코드:

$.getJSON('http://www.panoramio.com/wapi/data/get_photos?v=1&key=dummykey&tag=test&offset=0&length=20&minx=-30&miny=0&maxx=0&maxy=150&callback=?', function (data) {
  // Process data
});
로그인 후 복사

문제 해결 팁:

  • JSONP 구문(예: URL에 콜백=?이 포함되어 있는지)을 확인하세요. $.get 요청.
  • 교차 출처 XMLHttpRequest 요청에 HTTP URL을 사용하세요.
  • CORS에 대한 브라우저 지원을 확인하세요(예: Opera 및 Internet Explorer는 이를 완전히 지원하지 않을 수 있음).

위 내용은 file:// URL에서 AJAX를 통해 이미지를 가져올 때 'Access-Control-Allow-Origin에서는 원본 null이 허용되지 않습니다.'라는 메시지가 나타나는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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