3개의 사이트에 동일한 구글 태그매니저 연동작업을 했습니다. (스크립트 실행)
그런데 1개 서버에서
Refused to execute script from '' because its MIME type ('text/html') is not executable, and strict MIME type checking is enabled.
위와 같이 해당 스크립트의 요청이 거부가 됩니다.
구글링을 해보면 nginx 설정에
add_header 'Access-Control-Allow-Origin' '*';
를 추가하라고 하는 글들이 보이는데요.
문제가 없는 서버쪽에 위 내용을 찾아봐도 없는데 잘 되는거 같아 제가 못찾는건지 아니면 다른 문제인지 판단이 잘 안서네요.
add_header 'Access-Control-Allow-Origin' '*';
를 설정에 추가해도 문제 안될까요??
저건 Access-Control-Allow-Origin 헤더의 문제가 아니고, Content-Type 헤더의 문제입니다. 자바스크립트를 요청했는데 Content-Type: text/html 이라는 헤더가 따라오면 실행이 되지 않습니다.
요즘 절대 다수의 서버는 .js 확장자가 붙은 파일을 요청하면 Content-Type: text/javascript 또는 application/javascript 라고 제대로 헤더를 붙여 줍니다. text/html이 붙었다면 확장자가 .js인 파일을 직접 요청한 것이 아니라, PHP나 라이믹스를 통해서 스크립트를 반환하도록 해놓으셨을 가능성이 높아 보입니다. 이런 경우에 헤더를 제대로 출력해 주는 것은 해당 자료의 책임입니다.