programing

동적으로 로드된 스크립트에 "crossorigin" 태그를 추가하려면 어떻게 해야 합니까?

newstyles 2023. 7. 28. 21:52

동적으로 로드된 스크립트에 "crossorigin" 태그를 추가하려면 어떻게 해야 합니까?

컨텍스트:Mozilla 설명서 인용하기

일반 스크립트 태그는 표준 CORS 검사를 통과하지 못한 스크립트에 대해 최소한의 정보를 오류 발생 시 window.에 전달합니다.정적 미디어에 대해 별도의 도메인을 사용하는 사이트에 대한 오류 로깅을 허용하기 위해 여러 브라우저에서 표준 img crossorigin 특성과 동일한 정의를 사용하는 스크립트에 대해 crossorigin 특성을 사용하도록 설정했습니다.

우리는 자바스크립트를 CDN으로 이동한 이후로 스크립트가 이 문제로 인해 어려움을 겪고 있다는 것을 깨달았습니다.추가했습니다.crossorigin"하드코딩된" 스크립트 태그에 대해 잘 작동하는 스크립트 태그의 속성이지만, 우리는 동적으로 일부 스크립트를 로드하고, 나는 그것을 추가하는 방법을 알아낼 수 없습니다.crossorigin이 스크립트에 태그를 지정합니다.

Chrome 40에서: Javascript를 사용하여 스크립트 태그를 동적으로 추가하면 다음과 같습니다.

var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.type = 'text/javascript';
script.charset = 'utf-8';
script.crossorigin = 'anonymous';
script.src = some_url_on_another_domain;
head.appendChild(script);

제 문서에 삽입되는 스크립트 태그에 크로스 오리진 태그가 추가될 것으로 예상합니다.그러나 개발자 도구에서 스크립트 태그를 조사했을 때, 그것은 분명히 없습니다. (그리고 나는 그것을 확인할 수 있습니다.origin스크립트를 요청할 때 요청 헤더에 헤더가 설정되어 있지 않습니다.)

지금은 이러한 도메인 간 스크립트에 대해 Ajax 요청을 대신 사용하는 것으로 돌아가서 해결 방법이 있지만, 이제 동적 스크립트 태그에 crossorigin 태그를 추가할 수 있는지 궁금합니다.

저는 제 문제를 발견했습니다.

다음 항목:

script.crossorigin = 'anonymous';

다음과 같아야 합니다.

script.crossOrigin = 'anonymous';

대문자 "O"기록합니다.해당 속성은 HTML에서 대문자로 표시되지 않고 JS 인터페이스에서 대문자로 표시됩니다.알게 되어 기쁩니다!

부끄럽지만, 다른 사람이 같은 질문을 할 경우를 대비해 질문을 삭제하는 대신 제 실수를 불멸로 만들기로 했습니다.

언급URL : https://stackoverflow.com/questions/28901166/how-do-i-add-the-crossorigin-tag-to-a-dynamically-loaded-script