오류: file:// URL에서 요청할 때 "Access-Control-Allow-Origin에서는 원본 null을 허용하지 않습니다."
In AJAX를 통해 Panoramio에서 이미지를 검색하려고 하면 Chrome에서 다음 오류가 반복적으로 발생합니다. "XMLHttpRequest가 [Panoramio API를 로드할 수 없습니다. URL]. Access-Control-Allow-Origin에서는 Origin null이 허용되지 않습니다. 이 오류는 다음과 같은 근본적인 문제로 인해 발생합니다.
-
잘못 구성된 요청 유형:
초기 코드에서 요청 유형을 JSONP로 지정하지 않았습니다. 이후 jQuery는 도메인 간 요청에 CORS(Cross-Origin Resource Sharing)를 사용하는 XMLHttpRequest를 사용했습니다. 그러나 브라우저는 Access-Control-Allow-Origin 헤더를 통한 서버 승인이 있는 경우에만 CORS를 지원합니다.
-
Null Origin from file:// URL:
코드가 다음에서 실행되었습니다. file:// URL, null Origin 헤더가 생성되었습니다. 이 null Origin은 서버에서 다시 에코될 수 없으므로 인증 실패가 발생합니다.
해결책:
이러한 문제를 해결하려면 다음을 수정하세요.
-
$.getJSON을 다음과 함께 사용하세요. callback=?:
$.get 대신 $.getJSON을 사용하고 callback=?을 추가하세요. 요청 URL로. 이는 요청 유형을 자동으로 "jsonp"로 설정하는 JSONP를 사용하도록 jQuery에 신호를 보냅니다.
-
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!