Какой контент-тип выполняет javascript в браузере?

Страница, которую вы просматриваете прямо сейчас, имеет элемент заголовка HTTP Content-type: text/html. HTML отображается нормально, и JavaScript будет выполнен. Если у вас есть Content-Type: text/javascript, тогда JavaScript не выполняется, он отображается только .

Мой вопрос: есть ли контент-тип, отличный от text/html, который будет выполнять JavaScript? Я поместил как можно больше списка для любого общего браузера (IE, Firefox, Chrome, Safari).

4 ответа

Я не знаю полного списка, и вполне возможно, что такой список не существует публично. Возможно, вам придется самому выяснить. (Хотя я не думаю, что что-то говорит против настройки тестовой страницы с рядом фреймов и просит сообщество SO предоставить данные своим соответствующим браузерам. Это было сделано раньше.)

В Internet Explorer это обязательно должно быть в списке:

Кандидаты, на которых я буду тестировать (поскольку он может быть небрежным программистом, может активировать их для разбора HTML), включают:

  • application/form-data
  • text/xhtml+xml (раньше предложил в 2000 году, не знаю, что с этим случилось)

Тем не менее, я тестировал те, у кого есть как Chrome 9, так и последний Firefox, и они отвергают все, кроме text/html. Firefox показывает их в качестве загружаемых ресурсов, что, я думаю, устраняет их из вашего уравнения, поскольку любой JS в нем будет выполняться в локальном контексте, а не в URL. (IE выполняет все, включая текст /plain для меня, но я думаю, что это смешение заголовков с моим сервером.)

Если вы хотите найти надежную версию для браузеров с открытым исходным кодом, проверьте их исходный код или спросите их списки рассылки/форумы. Я чувствую, что у хороших есть text/html жестко закодированные.

Изменить: Принять! Firefox, Chrome и IE анализируют HTML и выполняют скрипты независимо от типа содержимого - мне удалось установить Content-type: text/poppycock - , когда расширение ресурса -.htm или .html. Это означает, что вы должны тестировать не только типы MIME, но и расширения файлов (которые также не должны играть роль в HTTP). Не знал этого - это, вероятно, было введено для исправления вывода сломанных веб-серверов. Так вот почему я не работаю в ИТ-безопасности:)

Все тесты, выполненные в Windows 7.


Это не очень полезно. Javascript не имеет возможности импортировать другие скрипты, поэтому ваш script будет изолирован от библиотек. Единственный способ связать их вместе - это HTML. Кроме того, параметры ввода/вывода очень ограничены без документа.


application/xhtml+xml должен был выполнить Javascript. Это единственное, что я могу придумать на макушке.


Вы пробовали application/javascript?

licensed under cc by-sa 3.0 with attribution.