브라우저 (플러그인을 통해)에서 실행되는 코드에서 다양한 .js 파일의 내용을 가져 오려고합니다.CORS가 .js 콘텐츠를 가져 오기 - 자바 스크립트
XMLHttpRequest
을 사용하여 동일한 서버에있는 .js 파일을 가져 오는 데 아무런 문제가 없습니다.하지만 CORS를 사용하려고하는 다른 도메인의 .js 파일 내용을 가져와야하지만 이
작동하도록하는 것 이것은 내가 실행하면 내 코드
// Create the XHR object.
function createCORSRequest(method, url) {
var xhr = new XMLHttpRequest();
if ("withCredentials" in xhr) {
// XHR for Chrome/Firefox/Opera/Safari.
xhr.open(method, url, true);
} else if (typeof XDomainRequest != "undefined") {
// XDomainRequest for IE.
xhr = new XDomainRequest();
xhr.open(method, url);
} else {
// CORS not supported.
xhr = null;
}
return xhr;
}
// Make the actual CORS request.
function makeCorsRequest(url) {
var xhr = createCORSRequest('GET', url);
if (!xhr) {
alert('CORS not supported');
return;
}
// Response handlers.
xhr.onload = function() {
return xhr.responseText;
};
xhr.onerror = function() {
alert('There was an error making the request.');
};
xhr.send();
}
이다 '. 요청하는 중에 오류가 발생했습니다'
url = `https://......./javascript.js'
res = makeCORSTRequest(url)
내가 얻을 오류 경고 및 콘솔 로그
XMLHttpRequest는 https://......./javascript.js을로드 할 수 없습니다. 아니요 요청한 리소스에 'Access-Control-Allow-Origin'헤더가 있습니다. 따라서 원점 'https://.....com'은 액세스 할 수 없습니다.
기본적으로 저는 서버에 의해 차단되어 브라우저에서 가져올 방법이 없습니다. 파이썬에서 간단한 요청을하면 텍스트가 나옵니다. – bluesummers
업데이트 된 답변보기 : CORS 프록시를 사용하는 방법이 있습니다. https://stackoverflow.com/questions/에서 답변을 얻습니다. 20035101/no-access-control-allow-origin-head-of-the-requested-resource-42744707 # 42744707에 대한 자세한 내용이 있습니다. 파이썬이나 파이썬에서 요청할 수있는 이유는 크로스 원점 제한을 적용하지 않지만 브라우저는 그렇게합니다. 내 대답을 짧은 설명으로 업데이트하겠습니다. – sideshowbarker
서버에 의해 차단되지 않았습니다. 적어도 직접적으로. 대신 * 브라우저 *는 프론트 엔드 코드가 응답에 액세스하지 못하도록 차단합니다. 서버는 여전히 응답을 보내지 않습니다. 업데이트 된 답변에서 자세한 설명을 참조하십시오. – sideshowbarker