이것은 jQuery 또는 클라이언트 측 스크립트 코드와 관련 이 없습니다 . 그것은이다 서버 측 문제 : 서버 (- 측 응용 프로그램)는 HTTP 예상 전송되지 않은 Content-Type
헤더 필드 는 클라이언트 측 스크립트 리소스에 대한 값입니다. 이것은 웹 서버가 불충분하게 구성, 잘못 구성되었거나 서버 측 응용 프로그램 (예 : PHP)이 클라이언트 측 스크립트 자원을 생성하는 경우에 발생합니다.
JavaScript와 같은 ECMAScript 구현에 적합한 MIME 미디어 유형은 다음과 같습니다.
text/javascript
( 더 이상 사용되지 않는 것으로 등록되었지만 더 이상 사용되지 않지만 여전히 유효 하며 최상의 지원 )
text/ecmascript
( 더 이상 사용되지 않는 것으로 등록되었지만 더 이상 사용되지 않지만 여전히 유효합니다 )
application/javascript
application/ecmascript
위에 나열된 MIME 미디어 유형은 현재 표준 트리에 등록 된 MIME 미디어 유형이므로을 포함 하지 않습니다application/x-javascript
(따라서 더 이상 실험적인 미디어를 사용할 필요가 없으며 필요하지 않아야 함). Cf. RFC 4329, "스크립팅 미디어 유형"(2005 CE) 및 테스트 사례 : 스크립팅 미디어 유형 지원 .
한 가지 해결책은 가능하면 이미 권장 된대로 서버를 구성하는 것입니다. Apache의 경우 지시문을 추가하는 것만 큼 간단합니다.
AddType text/javascript .js
자세한 내용은 Apache HTTP Server 설명서 를 참조하십시오.
그러나 클라이언트 측 스크립트 리소스가 PHP와 같은 서버 측 응용 프로그램에서 생성 된 Content-Type
경우 기본값은 다음과 같이 헤더 필드 값을 명시 적으로 설정해야합니다 text/html
.
<?php
header('Content-Type: text/javascript; charset=UTF-8');
// ...
?>
(이와 비슷한 문장은 다른 출력보다 먼저 나와야합니다. ( PHP 매뉴얼 참조 ) 그렇지 않으면 HTTP 메시지 본문이 이미 시작된 것으로 간주되어 더 많은 헤더 필드를 보내기에는 너무 늦습니다.)
서버에 일반 .js 파일이 있거나 서버에서 주석이 제공 될 때 주석이 제거 된 경우, 하나의 큰 응답으로 묶여있는 경우 서버 쪽 생성은 클라이언트 쪽 스크립트 리소스에 쉽게 발생할 수 있습니다. 더 효율적인 요청 수) 또는 다른 방법으로 서버 측 응용 프로그램에 의해 최소화됩니다.