Chrome говорит: «Ресурс интерпретируется как скрипт, но передается с MIME-типом text / plain.», Что дает? - PullRequest
314 голосов
/ 12 августа 2010

В FF и все, мой JavaScript работает нормально.Но в Chrome он выдает следующее сообщение:

Ресурс интерпретируется как скрипт, но передается с текстом MIME типа text / plain.

Я проверил все теги скрипта, и все они имеютMIME type="text/javascript".Это даже говорит так с JQuery и JQuery UI.Что не так с Chrome?

В чем проблема и как это исправить?Это что-то, что я должен изменить в «настройках» браузера, или это с сервера, или я должен настроить свой код?

Ответы [ 20 ]

1 голос
/ 07 ноября 2015

Для меня это произошло только на некоторых страницах, потому что я использовал window.location вместо $location.url(...); Это решило мою проблему.Потребовалось время, чтобы понять:)

0 голосов
/ 14 февраля 2015

Ответ опубликован здесь simon-sarris помог мне.

Это помогло мне решить мою проблему.

VisualУстановщик Studio должен добавить ошибочную строку в реестр.

открыть regedit и взглянуть на этот раздел реестра:

enter image description here

Видите этот ключ?Ключ типа контента?измените его значение с text / plain на text / javascript.

Наконец, chrome снова может дышать легко.

Я должен отметить, что по умолчанию в Windows 7 нет ни Content Type, ни PerctainedType, поэтомувозможно, можно безопасно удалить их обоих, но минимум, что вам нужно сделать, это редактировать.

В любом случае, я надеюсь, это исправит и вас тоже!

Не забудьте перезапустить вашСистема после изменений.

0 голосов
/ 04 сентября 2014

Если вы используете Spring MVC, Вы можете добавить следующий тег mvn, чтобы исключить файл ресурсов из сервлета Spring Dispatch

<mvc:resources mapping="/js/*.js" location="/js/"/>
<mvc:resources mapping="/css/*.css" location="/css/"/>
<mvc:resources mapping="/images/*.*" location="/images/"/>
0 голосов
/ 03 июля 2014

У меня была та же ошибка, и наконец (в моем конкретном случае) я нашел проблему в дескрипторе развертывания (web.xml)

Проблема:

<servlet-mapping>
    <servlet-name>SessionController</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>
...
<welcome-file-list>
    <welcome-file>/</welcome-file>
</welcome-file-list>

решение:

<servlet-mapping>
    <servlet-name>SessionController</servlet-name>
    <url-pattern>/SessionController</url-pattern>
</servlet-mapping>
...
<welcome-file-list>
    <welcome-file>desktop.jsp</welcome-file>
</welcome-file-list>
0 голосов
/ 27 августа 2012

У меня была эта проблема при использовании веб-фреймворка, и я исправил ее, переместив соответствующие файлы javascript в указанную (фреймворком) папку javascript.

0 голосов
/ 23 июля 2011

У меня возникла та же проблема при попытке изменить фоновые изображения в массиве с помощью javascript (в данном случае jQuery).

В любом случае.

Вместо этого:

m.setStyle('background-image','url(/templates/site/images/style5/'+backgs[i]+')')

сделать это:

eval("m.setStyle('background-image','url(/templates/site/images/style5/'+backgs[i]+')')");

Chrome javascript не работает, когда пытается проанализировать переменную внутри элемента, структурированного с помощью '.В моем случае это прекратилось как раз перед вставкой массива изображения.Вместо того, чтобы анализировать URL-адрес изображения + имя изображения (внутри массива), он анализировал только URL-адрес изображения.

Возможно, вам нужно выполнить поиск внутри кода и посмотреть, где это происходит.FF, IE и все остальные не имеют этой проблемы.

0 голосов
/ 16 марта 2016

В моем случае сервер отправлял правильный Content-Type, но с неправильным Content-Encoding.Убедитесь, что вы установили Content-Encoding: gzip только для gzipped ресурсов.Кроме того, после того, как я исправил заголовки на сервере (в моем случае, в Google Cloud Storage), мне пришлось подождать несколько минут, чтобы должным образом отразить изменения, вызванные кэшированием.

0 голосов
/ 20 сентября 2013

Обычно это происходит, если вы просто забыли включить type в вызовы сценария. Вам нужно будет установить его явно, так как это - в соответствии с W3 - обязательно :

type (content-type): Этот атрибут указывает язык сценариев содержимого элемента и переопределяет язык сценариев по умолчанию. Язык сценариев указывается в качестве типа контента (например, "text/javascript"). Авторы должны предоставить значение для этого атрибута. Для этого атрибута нет значения по умолчанию .

Все же кажется, что браузеры имеют значение по умолчанию plain/text.

Пример: * * тысяча двадцать-пять

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false&language=en"></script>

Вы также можете установить значение по умолчанию для этого расширения файла в конфигурации Apache:

<IfModule mod_mime.c>
    AddType text/javascript .js
</IfModule>
0 голосов
/ 22 декабря 2018

Если вы используете AdonisJS (например, REST API), один из способов избежать этого - определить заголовок ответа следующим образом:

response.safeHeader('Content-type', 'application/json')
0 голосов
/ 07 июня 2014

Если его IIS, то убедитесь, что под вашим common HTTP Features включено Static Content, включено

...