В FF и все, мой JavaScript работает нормально. Но в Chrome выдает это сообщение:
Ресурс интерпретируется как скрипт, но передается с MIME-типом text / plain.
Я проверил все теги сценария, и все они имеют MIME type="text/javascript"
. Это даже говорит так с JQuery и JQuery UI. Что не так с Chrome?
В чем проблема и как это исправить? Это то, что я должен изменить в «настройках» браузера, или это с сервера, или я должен настроить свой код?
google-chrome
mime-types
Shaoz
источник
источник
Ответы:
Это означает, что сервер отправляет Javascript HTTP-ответ с
Вам необходимо настроить сервер для отправки ответа JavaScript с
источник
content-type:application/javascript
,application/x-javascript
это не стандарт RFC или ECMAScript.Это не имеет ничего общего с jQuery или каким-либо изюминкой кода скрипта на стороне клиента. Это проблема на стороне сервера : сервер (приложение на стороне) не отправляет ожидаемое значение
Content-Type
поля заголовка HTTP для ресурса сценария на стороне клиента. Это происходит, если веб-сервер недостаточно настроен, неправильно настроен или приложение на стороне сервера (например, PHP) генерирует ресурс сценария на стороне клиента.Правильные типы мультимедиа MIME для реализаций ECMAScript, таких как JavaScript, включают:
text/javascript
(зарегистрировано как устаревшее , не устарело; но все еще действует и поддерживается лучше )text/ecmascript
(зарегистрировано как устаревшее , не устарело; но все еще действует )application/javascript
application/ecmascript
Они не включают в себя
application/x-javascript
, поскольку перечисленные выше типы носителей MIME уже зарегистрированы в дереве стандартов (поэтому больше нет необходимости и не должно быть необходимости использовать экспериментальные типы). Ср RFC 4329, «Типы носителей со сценариями» (2005 CE) и мой тестовый пример: Поддержка типов носителей со сценариями .Одним из решений является настройка сервера, если это возможно, как уже рекомендовано. Для Apache это может быть так просто, как добавление директивы
(подробности см. в документации по Apache HTTP Server ).
Но если ресурс сценария на стороне клиента генерируется серверным приложением, таким как PHP, то необходимо
Content-Type
явно установить значение поля заголовка, так как по умолчанию это вероятноtext/html
:(Эти и аналогичные операторы должны предшествовать любому другому выводу - см. Руководство по PHP - иначе тело сообщения HTTP уже началось и уже слишком поздно отправлять больше полей заголовка.)
Генерация на стороне сервера может легко произойти с ресурсом сценария на стороне клиента, даже если у вас есть простые файлы .js на сервере, если комментарии удаляются из них по мере их доставки, если они все упакованы в один большой ответ (чтобы уменьшить количество запросов (что может быть более эффективным), либо они минимизируются серверным приложением любым другим способом.
источник
text/javascript
закончитьapplication/javascript
. Если у вас есть основания полагать, чтоapplication/javascript
сейчас это лучший ответ, то по крайней мере вам следует пояснить это в комментарии. Неуместно, что мне требуется механизм уведомления Stack Overflow, чтобы я знал о ваших изменениях. Я отменил ваши изменения, которые я называю фальсификацией , на ответы на этот вопрос, где я считаю их неуместными.Для серверов приложений Java, таких как Weblogic
1) Убедитесь, что ваш файл weblogic.xml не содержит ошибок
как этот:
2) Добавьте MIME-тип для JavaScript в ваш файл web.xml :
Это также будет работать для других контейнеров Java - Tomcat и т. Д. В
application/javascript
настоящее время является единственным допустимым mime-типом; другие, какtext/javascript
были устарели.3) Вам может понадобиться очистить кеш браузера или нажать CTRL-F5
источник
У меня была эта проблема, и я понял, как ее исправить.
Это происходит, когда файл стиля (CSS) находится в другой кодировке, чем файл PHP, который ссылается на файл .css.
Например, использование jQuery.js в кодировке Unix и использование index.php в UTF-8 вызовут эту проблему, поэтому вам нужно сделать так, чтобы кодировкой была либо UTF-8, либо любая другая кодировка, если она одинакова.
источник
Если вы генерируете свой javascript с помощью php-файла, добавьте его в начало вашего файла:
источник
В httpd.conf вашего apache просто добавьте такую строку:
источник
Я получил это сообщение отладки по более глупой причине, чем другие ответы здесь: это сообщение об ошибке, полученное, когда вы не высыпаетесь и ссылаетесь на файл js, используя синтаксис для файла css. Как в,
скорее, чем
Я подумал, что это здесь, потому что это первый пост, который появляется при поиске сообщения об ошибке.
источник
Странная проблема, но это помогло мне решить мою проблему. Иногда даже самые простые вещи трудно понять ...
Вместо того, чтобы использовать
/js/main.css
в моем скрипте тег, я использовалjs/main.css
Да , это действительно имело значение. Я сижу на WAMP / Windows, и у меня не было vhost, а просто использовал
localhost/<project>
Если я ссылаюсь на
/js/main.css
то я имею в виду,localhost/css/main.css
а не наlocalhost/<project>/css/main.css
Когда вы думаете об этом, это совершенно очевидно, но если кто-то наткнется на это, я подумаю, что поделюсь этим ответом.
источник
Проверьте, действительно ли ваши js-файлы существуют на сервере. У меня возникла эта проблема, и я обнаружил, что js-файлы не были загружены на сервер, а сервер фактически возвращал html-страницу - это был документ по умолчанию, настроенный на сервере (например, default.html)
источник
Если вы работаете на Joomla! и получая эту досадную ошибку при попытке включить
.js
файл JavaScript ( ), тогда следующее решение для вас.Наиболее вероятная проблема заключается в том, что вы пытаетесь включить
.js
файл, которого там нет , или вы просто потеряли этот.js
файл, и когда Joomla! не находит ресурс, то вместо общего сообщения 404, он возвращает полноценное сообщение 404 с полной веб-страницей, HTML и т. д.Веб-браузер интерпретирует его так,
.js
как будто это просто веб-страница, сообщающая, что нужный файл не найден .Это может работать для joomla2.5joomla3.0joomla3.1joomla3.2joomla3.3Joomla
источник
Для меня это произошло только на некоторых страницах, потому что я использовал
window.location
вместо$location.url(...);
этого исправил мою проблему. Потребовалось время, чтобы выяснить :)источник
У меня была эта проблема при использовании веб-фреймворка, и я исправил ее, переместив соответствующие файлы javascript в указанную (фреймворком) папку javascript.
источник
Обычно это происходит, если вы просто забыли включить
type
вызовы скрипта. Вы должны будете установить это явно, поскольку это - согласно W3 - требуется :Тем не менее, кажется, что браузеры имеют значение по умолчанию
plain/text
.Пример:
Вы также можете установить значение по умолчанию для этого расширения файла в конфигурации Apache:
источник
Если его IIS убедитесь, что под вашим
common HTTP Features
выStatic Content
включилиисточник
У меня была та же ошибка, и наконец (в моем конкретном случае) я нашел проблему в дескрипторе развертывания (web.xml)
Эта проблема:
решение:
источник
Если вы используете Spring MVC, вы можете добавить следующий тег mvn, чтобы исключить файл ресурсов из сервлета Spring Dispatch.
источник
В моем случае сервер отправлял правильный,
Content-Type
но с неправильнымContent-Encoding
. Убедитесь, что вы установили толькоContent-Encoding: gzip
для gzipped ресурсов. Кроме того, после того, как я исправил заголовки на сервере (в моем случае, в Google Cloud Storage), мне пришлось подождать несколько минут, чтобы должным образом отразить изменения, вызванные кэшированием.источник
Если вы используете AdonisJS (REST API, например), один из способов избежать этого - определить заголовок ответа следующим образом:
источник
У меня возникла та же проблема при попытке изменить фоновые изображения в массиве с помощью JavaScript (в данном случае jQuery).
Тем не мение.
Вместо этого:
сделай это:
Chrome javascript не работает при попытке проанализировать переменную внутри элемента, структурированного с помощью '. В моем случае это остановилось как раз перед вставкой массива изображения. Вместо того, чтобы анализировать URL-адрес изображения + имя изображения (внутри массива), он анализировал только URL-адрес изображения.
Вам, вероятно, нужно искать внутри кода и видеть, где это происходит. FF, IE и все остальные не имеют этой проблемы.
источник
eval
если вы можете помочь ему: javascripttoolbox.com/bestpractices/#evalОтвет отправил здесь на Симона-Сарриса помог мне.
Не забудьте перезагрузить систему после внесения изменений.
источник