스크립트 실행을 거부했습니다. 엄격한 MIME 유형 검사가 활성화되어 있습니까?


답변:


58

당신은이 <script>일부 외부 자바 스크립트를로드하려고 요소를.

제공 한 URL은 JavaScript 프로그램이 아닌 JSON 파일을 가리 킵니다.

서버가 JSON이라고 올바르게보고하므로 브라우저는 JSON을 JavaScript로 실행하려고하는 대신 해당 오류 메시지와 함께 중단됩니다 (오류가 발생 함).


확률은 이것에 대한 근본적인 이유는 Ajax 요청 을 시도하고 교차 원본 오류가 발생 했으며 jQuery에 JSONP를 사용하고 있음을 알려서 수정하려고 시도했기 때문입니다. 이것은 URL이 JSONP (JavaScript의 다른 하위 집합)를 제공하는 경우에만 작동하지만이 기능은 제공하지 않습니다.

추가 쿼리 문자열 매개 변수 callback=the_name_of_your_callback_function가 있는 동일한 URL은 JavaScript를 반환합니다.


4
나는 지금 이것을 주었고 그것은 오류 <script id = "data"type = "application / json"
rob.m

2
type="application/json"— 이제 브라우저는 JavaScript를로드하려고하지 않는다는 것을 알고 있으므로 스크립트 요소를 완전히 무시합니다.
Quentin 2011

58

제 경우에는 파일을 찾을 수 없었고 javascript 파일의 경로를 잘못 입력했습니다.


8
똑같다. 잘못된 경로로 인해 일부 오류 html 페이지 응답이 발생하여이 혼란스러운 오류 메시지가 발생합니다.
Gil Roitto

2
상냥한 대답. 감사합니다 :)
Anjana Silva

21

이 결과는 Google에서 처음으로 나타나는 결과이며 여기에서 발생하는 것보다 더 광범위합니다. 다음은 익스프레스 서버에 적용됩니다 .

중첩 된 폴더에서 리소스에 액세스하려고했습니다.

내부 index.html내가했다

<script src="./script.js"></script>

고정 경로가에 마운트되었습니다.

app.use(express.static(__dirname));

그러나는 다음 script.js과 같이 중첩 폴더 에 있습니다. js/myStaticApp/script.js 스크립트 실행을 거부했습니다. meme 유형 검사가 활성화되었습니다. 방금 정적 경로를 다음 과 같이 변경했습니다.

app.use(express.static(path.join(__dirname, "js")));

이제 작동합니다 :)


6

Node.js 를 사용하는 경우 express.static () 을 사용하십시오.

정적 자산을 보관하는 디렉토리의 이름을 express.static 미들웨어에 전달하기 만하면 파일을 직접 제공 할 수 있습니다. 예를 들어 이미지, CSS 및 JavaScript 파일을 public이라는 디렉토리에 보관하면 다음과 같이 할 수 있습니다.

즉 : app.use (express.static ( 'public'));

이 접근 방식으로 문제가 해결되었습니다.

감사,


이 특정 질문에 대한 정답이 아닐 수도 있지만 내 문제에 대한 해결책이었습니다. 감사!
mcheah

2

실수로 js 파일의 이름 .min.min.js...


1

파이썬 플라스크

윈도우 , 그것은 HKCR에서 "콘텐츠 형식"값이 /의 .js가 올바른 MIME로 설정되지 않은 경우 그래서 문제가 발생할 수 입력, 레지스트리에서 데이터를 사용합니다.

regedit를 열고 HKEY_CLASSES_ROOT 로 이동 하여 키 .js / Content Type에 text / javascript 값이 있는지 확인하십시오.

C:\>reg query HKCR\.js /v "Content Type"

HKEY_CLASSES_ROOT\.js
    Content Type    REG_SZ    text/javascript

0

아래에 표시된대로 코드 조각을 항목 html에 추가합니다. 즉 reactjs의 "index.html"

<div id="wrapper"></div>
<base href="/" />


1
이것이 왜 유용한 지에 대한 설명을 대단히 감사하겠습니다.
Juan Lanus

-1

다음과 같은 급행 노선이있는 경우 :

app.get("*", (req, res) => {
  ...
});

좀 더 구체적인 것으로 변경해보십시오.

app.get("/", (req, res) => {
  ...
});

예를 들면.

아니면 동일한 HTML 템플릿을 반복해서 제공하는 자신을 발견 할 수도 있습니다.


-1

나는 같은 문제를 겪었고 이렇게 고쳤다.

change "text/javascript"

...에

type="application/json"

2
그러면 브라우저가 처음에 URL을 요청하는 것을 중지하고 script문서에서 요소의 존재를 완전히 무의미하게 만듭니다.
Quentin

-1

제 경우에는 404'd 파일에 대한 심볼릭 링크가 있었고 Tomcat은 심볼릭 링크를 허용하도록 구성되지 않았습니다.

나는 그것이 대부분의 사람들에게 원인이 될 것 같지 않다는 것을 알고 있지만, 만약 당신이 필사적이라면 혹시라도이 가능성을 확인하십시오.


-2

나는 같은 문제가 있었고 문제는 내 경로에 슬래시가 없다는 것입니다.

나는 가지고 있었다

이 문제를 해결하려면 jquery-ui와 jquery-ui.min 사이에 슬래시 만 추가하면됩니다.

  <script type="text/javascript" src="js/jquery-ui/jquery-ui.min.js"></script>

이것이 도움이되기를 바랍니다 : D


-12

내 jsp 경로에 $ {pageContext.request.contextPath} 만 추가하여 문제를 해결했습니다. 대신에 :

 <script    src="static/js/jquery-3.2.1.min.js"></script>

나는 설정했다 :

 <script    src="${pageContext.request.contextPath}/static/js/jquery-3.2.1.min.js"></script>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.