스크립트 실행을 거부했습니다. 엄격한 MIME 유형 검사가 사용되도록 설정되었습니까?
콘솔에 이 오류가 표시되는 이유는 무엇입니까?
MIME 유형('응용 프로그램/json')을 실행할 수 없고 엄격한 MIME 유형 검사가 사용 가능하므로 'https://www.googleapis.com/customsearch/v1?key=API_KEY&q=flower&searchType=image&fileType=jpg&imgSize=small&alt=json''에서 스크립트 실행을 거부했습니다.
제 경우 파일을 찾을 수 없습니다.javascript 파일의 경로를 잘못 입력했습니다.
가지고 있다<script>
JavaScript 입니다.
입력한 URL은 JavaScript 프로그램이 아닌 JSON 파일을 가리킵니다.
서버가 JSON임을 올바르게 보고하고 있기 때문에 브라우저는 JSON을 JavaScript로 실행하려고 하지 않고 해당 오류 메시지와 함께 중단합니다(이 경우 오류가 발생합니다).
이 문제의 근본 원인은 Ajax 요청을 작성하려고 하고 있으며 크로스 오리진 오류가 발생하여 jQuery에게 JSONP를 사용 중임을 알림으로써 수정을 시도하고 있기 때문일 가능성이 높습니다.이것은 URL이 JSONP(JavaScript의 다른 서브셋)를 제공하는 경우에만 동작하지만, 이 서브셋은 동작하지 않습니다.
에 추가 파라미터 " " " " " " URLcallback=the_name_of_your_callback_function
자바스크립트
이 결과는 구글에서 처음 나타나는 것으로, 여기서 일어나는 일보다 더 광범위하다.Express 서버에는 다음 사항이 적용됩니다.
중첩된 폴더에서 리소스에 액세스하려고 했습니다.
index.html
는 먹었다
<script src="./script.js"></script>
스태틱 루트가 에 마운트되었습니다.
app.use(express.static(__dirname));
그...script.js
는 다음과 같이 네스트된 폴더에 있습니다.js/myStaticApp/script.js
스태틱 루트를 다음과 같이 변경했습니다.
app.use(express.static(path.join(__dirname, "js")));
이것으로 동작합니다. : )
Node.js를 사용하는 경우 express.static()을 사용해 보십시오.
파일 서비스를 직접 시작하려면 정적 자산을 보관하는 디렉토리 이름을 express.static 미들웨어에 전달하기만 하면 됩니다.예를 들어 이미지, CSS 및 JavaScript 파일을 public이라는 이름의 디렉토리에 보관하면 다음과 같이 할 수 있습니다.
예: app.use(param.static "public");
이 방법으로 문제가 해결되었습니다.
제 경우엔, 레거시 코드를 작업하고 있었어요.
그리고 난 이 코드 줄을 가지고 있어
<script type="text/javascript" src="js/i18n.js.php"></script>
나는 이 코드가 어떻게 동작하는지 헷갈렸다.이 코드가 js가 아닌 PHP 파일을 호출하고 있다.
라이브 서버에서 동작하고 있는데도
근데 이 에러는 스테이지 서버에 있어요
콘텐츠 타입은
content-type: text/html; charset=UTF-8
스크립트 태그의 텍스트/스크립트라도
그리고 내가 추가한 후에
header('Content-Type: text/javascript');
파일 i18n.displaces.displaces의 선두에 표시됩니다.
오류가 수정되었습니다.
잠시 검색해 본 결과, Windows 10 64비트의 이 에러가 JavaScript와 관련되어 있는 것을 알 수 있었습니다.이를 확인하려면 먼저 브라우저 DevTools에 접속하여 확인합니다.제 경우 MIME type('application/javascript') is not executable' 등의 오류가 나타납니다.
그렇다면 제가 해결책을 찾아냈어요.이게 조건이다:
- https://github.com/jupyterlab/jupyterlab/issues/6098에서 사용자 "ilango100"을 빌리는 중:
저도 얼마 전에 똑같은 문제가 있었어요.이 문제는 Windows에만 해당된다고 생각합니다.이는 javascript 파일의 Windows 레지스트리에 잘못된 MIME 유형이 설정되어 있기 때문입니다.Windows 레지스트리를 올바른 컨텐츠 타입으로 편집하는 것으로, 문제를 해결했습니다.
regedit -> HKEY_LOCAL_MACHINE\Software\Classes -> 파일 확장자별로 많은 폴더가 표시됩니다.-> ".js" 레지스트리로 스크롤하여 선택합니다.-> 오른쪽에서 "Content Type" 값이 응용 프로그램/javascript 이외의 경우 문제가 발생합니다.Content Type 우클릭 후 Application/Javascript로 값을 변경합니다.
브라우저에서 다시 시도하십시오."
그 후, 에러가 변화하고 있는 것을 깨달았습니다.브라우저에서도 자동으로 열리지 않습니다.그러나 PGAdmin은 사이드바(달력/시계에 가깝다)에서 열립니다.브라우저에서 직접 열려고 합니다("New PGAdmin 4" 창..( )도 동작하지 않습니다.
최종 해결책: "서버 URL 복사"를 클릭하여 브라우저에 붙여넣습니다.나한텐 효과가 있었어!
편집: Eric Mutta가 다음 코멘트에서 설명한 바와 같이 서버 URL 복사는 필요하지 않을 수 있습니다.
파일의 을 js라고 지었습니다..min
.min.js
파이톤 플라스크
Windows 에서는 레지스트리의 데이터를 사용하기 때문에, HKCR/.js 의 「Content Type」값이 적절한 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
내 경우(React 앱)는 캐시를 강제 청소하기만 하면 동작합니다.
웹 서버가 반환되었습니다.
Content-Type: application\javascript
도대체 뭐가 잘못됐는지 알 수가 없었어요그런데 잘못된 방향으로 베인 걸 깨달았어요.다음 중 하나여야 합니다.
Content-Type: application/javascript
제 경우, 타이프스크립트 파일을 실행하는 동안 다음과 같이 썼습니다.
<script src="./script.ts"></script>
대신:
<script src="./script.js"></script>
제 경우 Spring Security는 외부 라이브러리에 대한 콜을 허용하기 전에 인증을 요구하고 있었습니다.폴더 /dist/..가 있었습니다.Web Security Config 클래스의 무시 목록에 폴더를 추가하면 정상적으로 동작합니다.
web.ignoring().antMatchers("/resources/**", "/static/**", "/css/**", "/js/**", "/images/**", "/error", "/dist/**");
빈칸이 합니다.src
script
붙이다
으로 제, 는, ulating를 채우고 .src
대본(내 경우)에 따라 다르지만, 특정한 경우에는src
이 에러의 원인이 되고 있습니다.하다
<script src=""></script> //empty src causes error
빈칸이 빈칸이 아니라src
script
태그, 스크립트 태그를 모두 제거했습니다.다음과 같이 합니다.
if($src !== ''){
echo '<script src="'.$src.'"></script>';
}
사용 유형만 사용할 수 있습니다.
또는 사용하고 있는 파일 타입을 선택합니다.
문제는 CSS 파일을 스크립트 정의 영역 바로 위에 있는[ Try to check the files spot in your page ](페이지 내의 파일 스팟을 확인하려고 합니다)에 넣는 것입니다.
SpringMVC+tomcat+React를 사용하고 있습니다.
@Anfuca의 답변이 통하지 않는다(브라우저 캐시 강제 청소)
하여 특정 React의 "React" 에 했습니다.index.html
public class FrontFilter extends HttpFilter {
@Override
protected void doFilter(HttpServletRequest req, HttpServletResponse res, FilterChain chain) throws IOException, ServletException {
boolean startsWithApi = requestURI.startsWith("/api/");
boolean isFrontendUri = requestURI.startsWith("/index.html");
if (!startsWithApi && !isFrontendUri) {
req.getRequestDispatcher("/index.html").forward(req, res);
}
super.doFilter(wrapped, res, chain);
}
}
스프링 보안 문제가 없습니다.bcs 내 필터가 스프링 보안보다 먼저 실행됩니다.
그래도 같은 에러가 표시되어 여기서 찾을 수 있습니다.
그 후 JS와 CSS의 조건을 하나 더 추가하는 것을 잊어버린 것을 깨달았습니다.
boolean startsWithStatic = requestURI.startsWith(contextPath + "/static");
my if 조건 및 문제 해결, MIME 유형 오류 없음 또는 js 및 css('text/html')에 추가
근본 원인은 JS와 CSS 타입을 HTML 타입으로 잘못 전송했기 때문입니다.
저도 같은 오류가 발생했어요.나는 내 app.js가 다른 폴더에 있다는 것을 알았다.방금 index.html 파일이 있는 폴더로 옮겼더니 해결되었습니다.
각도 전개에서 다음을 시도합니다.
다음과 같이 코드 스니펫을 항목 html(reactjs의 "index.html")에 추가합니다.
<div id="wrapper"></div>
<base href="/" />
다음과 같은 express 루트가 있는 경우:
app.get("*", (req, res) => {
...
});
좀 더 구체적인 내용을 위해 변경해 보십시오.
app.get("/", (req, res) => {
...
});
예를들면.
그렇지 않으면 같은 HTML 템플릿을 반복적으로 사용할 수 있습니다.
내 경우 404'd 파일에 대한 심볼링크가 있고 Tomcat이 심볼링크를 허용하도록 구성되지 않았습니다.
대부분의 사람들에게 원인이 될 것 같지 않다는 것을 알지만, 만약을 위해 절박하다면 이 가능성을 확인해 보세요.
나도 같은 문제가 있었는데 이렇게 고쳤다.
change "text/javascript"
로.
type="application/json"
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>
언급URL : https://stackoverflow.com/questions/40574159/refused-to-execute-script-strict-mime-type-checking-is-enabled
'programing' 카테고리의 다른 글
Bash 변수를 사용하여 JSON 문자열 구축 (0) | 2023.03.10 |
---|---|
AngularJS/Javascript 날짜 문자열에서 날짜 개체로 변환 (0) | 2023.03.10 |
cPanel에서 최대 업로드 크기를 늘리는 방법 (0) | 2023.03.10 |
위험하게 SetInner를 대체하는 안전한 방법HTML (0) | 2023.03.10 |
Angular-UI 자동 검색: 레이블 표시, 값에만 바인딩 (0) | 2023.03.10 |