Подтвердить что ты не робот

"Объект не поддерживает свойство или метод" querySelector "отображается при доступе к сайту по имени компьютера в IE11

У меня есть сайт angularjs, развернутый в IIS на хосте Windows Server 2012 R2 внутри моего брандмауэра. Когда я RDP на сервер и, оттуда, перейдите к

http://localhost/Foo 

в IE11, все ведет себя так, как и следовало ожидать, моя страница обслуживается браузером.

Но когда я пытаюсь просмотреть

http://servername/Foo

в IE11, я получаю сообщение об ошибке, исходящее из строки 1016 angular.js

"Объект не поддерживает свойство или метод 'querySelector'"

Это происходит только в Internet Explorer.
Все проверено как в Chrome, так и в Firefox.

Кто-нибудь знает, почему это происходит, и что я могу сделать, чтобы исправить это?

4b9b3361

Ответ 1

Решение этой проблемы состояло в том, чтобы добавить

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />

как первый элемент в Head.

Метатег должен быть первым тегом в голове для IE, чтобы выбрать режим edge; В противном случае он игнорирует DOCTYPE, который должен указывать IE, чтобы он не попадал в режим quirks.

Я включил метатег в качестве запоздалой мысли, когда я развертывал и набрал его в нижней части головы.

MSDN | Определение устаревших режимов документа

Заголовок, совместимый с X-UA, не чувствителен к регистру; однако он должен отображаться в заголовке веб-страницы (раздел HEAD) перед всеми другими элементами, за исключением элемента заголовка и других мета-элементов.

Параметры совместимости по умолчанию в Internet Explorer заставляют IE молча вести себя по-разному для внутренних сайтов и внешних сайтов.

Установка метатега X-UA-Compatible явно объявляет, что браузеры должны получать ваш внутренний сайт в режиме Edge без необходимости администрирования параметров совместимости, но заголовок должен быть указан как первый тег в голове, чтобы иметь этот эффект.

Ответ 2

Отключить режим просмотра совместимости для вашей интрасети и сайта, к которому вы пытаетесь получить доступ, и это решит вашу проблему.