Я заметил странное сообщение с предупреждением при просмотре загруженных ресурсов с помощью инспектора Google Chrome ( F12):
Осторожно показаны временные заголовки
Я нашел что-то уместное, Сетевая панель: добавьте осторожность относительно предварительных заголовков запросов , но я не мог полностью понять это. Связанные вопросы можно найти в запросах на блокировку Chrome, а также не удается загрузить XMLHttpRequest. В выгруженных ресурсах следует проявлять осторожность: отображаются предварительные заголовки .
Как и в первом вопросе , мой ресурс был заблокирован, но позже автоматически загрузил этот же ресурс. В отличие от второго вопроса , я не хочу ничего исправлять; Я хочу знать, что означает это сообщение и почему я его получил.
google-chrome
http
http-headers
google-chrome-devtools
Сальвадор Дали
источник
источник
chrome://flags/#site-isolation-trial-opt-out
Ответы:
Ресурс может быть заблокирован расширением (в моем случае AdBlock).
Сообщение есть, потому что запрос на получение этого ресурса никогда не был сделан, поэтому отображаемые заголовки не являются реальными. Как объяснялось в проблеме, на которую вы ссылались, реальные заголовки обновляются, когда сервер отвечает, но ответа не было, если запрос был заблокирован.
Я узнал о расширении, которое блокировало мой ресурс, с помощью инструмента net-internals в Chrome:
Для последних версий хрома
chrome://net-export/
в адресной строке и нажмите Enter.Для старых версий хрома
chrome://net-internals
в адресной строке и нажмите Enter.источник
Я считаю, что это происходит, когда фактический запрос не отправлен. Обычно это происходит при загрузке кэшированного ресурса.
источник
Для chrome v72 + это решило только для меня это:
перейти
chrome://flags/
и отключить эти 3 флагаили вы можете сделать это из командной строки:
почему это случилось?
опасно ли это изменить?
источник
localhost:8080
иgoogle.com
(!?). Исправлено отключение изоляции сайта google.com, но не localhost. Отключение только двух других опций исправило это во всех случаях.Я столкнулся с этой проблемой, и мне удалось определить конкретную причину, которая не упоминалась выше ни в ответах, ни в вопросе.
Я использую полный стек js, угловой интерфейс и серверную часть узла по протоколу SSL, а API находится в другом домене, работающем через порт 8081, поэтому я выполняю запросы CORS и withCredentials, поскольку я удаляю файл cookie сеанса из API
В частности, мой сценарий был следующим: запрос POST с использованием Credentials к порту 8081 вызвал сообщение «ВНИМАНИЕ: предварительные заголовки показаны» в инспекторе, а также, конечно, заблокировал запрос все вместе.
Мое решение состояло в том, чтобы настроить apache, чтобы прокси передавал запрос от обычного порта SSL 443 на порт SSL узла 8081 (узел должен быть на более высоком порту, так как он не может быть запущен от имени root в prod). Поэтому я предполагаю, что Chrome не нравится запросы SSL к нетрадиционным портам SSL, но, возможно, их сообщение об ошибке может быть более конкретным.
источник
'/graphql': { target: 'http://10.10.1.38:4000', changeOrigin: true }
"proxy": "http://192.168.98.110:1234"
мойpackage.json
в проект create-реагировать на приложение. В отличие от ответа, я нигде не использую HTTPS в dev, но это было необходимо, потому что мое приложение и API находятся на разных IP-адресах.Это также может произойти (только для запросов между источниками) из-за новой функции, называемой изоляцией сайта.
Эта страница подробно описывает проблему и обходные пути . Для этого нужно перейти
chrome://flags/#site-isolation-trial-opt-out
в Chrome и изменить этот параметр на «Отказ» и перезагрузить Chrome.Это известная проблема . Однако на этой странице написано, что она исправлена в Chrome 68, но я использую Chrome 68 и у меня все еще есть проблема.
источник
Ресурсы HTTP / 2 Pressed будут
Provisional headers are shown
отображаться в инспекторе по той же теории, что и @wvega, опубликованная в его ответе выше .Например: поскольку сервер отправил ресурс (ы) клиенту ( до того, как клиент запросил их ), браузер кэшировал ресурсы и, следовательно, клиент никогда не делает / нуждается в запросах; Потому, что...
источник
Моя ситуация связана с происхождением .
Ситуация: браузер отправляет
OPTIONS
запрос перед отправкой реального запроса, напримерGET
илиPOST
. Бэкэнд-разработчик забывает обрабатыватьOPTIONS
запрос, пропуская его через служебный код, что делает процесс обработки слишком долгим. Дольше, чем настройка времени ожидания, которую я написал вaxios
инициализации, которая составляет 5000 миллисекунд. Поэтому реальный запрос не мог быть отправлен, и тогда я столкнулся сprovisional headers are shown
проблемой.Решение: Когда дело доходит до
OPTIONS
запроса, бэкэнд API просто возвращает результат, это делает запрос быстрее и реальный запрос может быть отправлен до истечения времени ожидания.источник
Я сомневаюсь, что мой ответ вовремя поможет вам, но другие могут найти его полезным. У меня возникла похожая проблема с скриптом jQuery Ajax Post, который я создал.
Оказалось, что у меня есть опечатка в атрибуте href тега A, который я использовал для запуска записи. Я набрал href = " javacsript:; " (изменяя 's' и 'c') .. это заставило скрипт попытаться обновить страницу, пока пост пытался запустить. исправил опечатку, и она отлично работала для меня.
источник
Это сообщение может появиться, когда сайт защищен с помощью HSTS . Затем, когда кто-то ссылается на HTTP-версию URL-адреса, браузер, следуя инструкциям HSTS, не выдает HTTP-запрос, а внутренне перенаправляет на ресурс HTTPS безопасно. Это сделано для того, чтобы избежать атак понижения HTTPS, таких как sslstrip .
источник
Это может произойти из-за того, что вы отправили запрос Ajax, в то же время вы перешли на другую страницу, используя location.href или что-то в этом роде. Так что предыдущий запрос не удался.
источник
Это предупреждающее сообщение также появляется, если ответ является недействительным и поэтому отбрасывается браузером.
В моем случае запрос был правильно отправлен на сервер, затем серверный код выдал ошибку, и моя пользовательская обработка ошибок вернула сообщение об ошибке в поле сообщения статуса HTTP. Но эта ошибка не была получена на стороне клиента из-за недопустимых символов в сообщении об ошибке (описанном здесь http://aspnetwebstack.codeplex.com/workitem/1386 ), что привело к повреждению заголовков ответов.
источник
Я столкнулся с этой проблемой с вызовом AJAX, который никогда не завершится. Я последовал совету и совету wvega по отладке,
chrome://net-internals
чтобы в конечном итоге определить, что другойclick
обработчик событий на странице, прослушивающий родительский узел, заставлял браузер переходить по тому же URL-адресу (так что это было не так легко заметить).Решение было добавить
event.stopPropagation()
вclick
обработчик на форме кнопки отправки , чтобы щелчок от бурлит в DOM и отмене запроса AJAX Идет (инициированный с помощьюsubmit
обработчика наform
).источник
У меня это возникло совсем недавно (на самом деле сегодня), когда мне приходили вызовы AJAX на сервер, и Chrome запускает «Внимание: отображаются предварительные заголовки». В сценариях PHP на стороне сервера есть запросы MySQL, которые могут быть почти мгновенными или занимать несколько секунд в зависимости от заданного сценария. Мой ответ сервера не отправляется обратно в браузер, пока запросы не будут завершены. Я обнаружил, что получаю эту ошибку только тогда, когда выполняются трудоемкие запросы (всего до нескольких секунд), и предотвращают отправку ответа.
Мой сценарий включает в себя очень редкую возможность изменения таблицы путем добавления / удаления сотен столбцов для вывода модели погоды ... отсюда и задержка ответа при повторении цикла запросов ALTER TABLE.
источник
Обычная причина, по которой это происходит, - это если вы отслеживаете событие и не препятствует действию по умолчанию. Например, если у вас есть событие щелчка, вам нужно включить:
или
Если вы этого не сделаете, вы увидите предупреждение о предварительных заголовках, а также состояние «отменено» на вкладке «Сеть» веб-консоли.
источник
В моем случае это был просто неверный путь к ресурсу (svg / img)
источник
Эта проблема возникла у меня, когда я отправлял неверный HTTP-заголовок авторизации. Я забыл кодировать в base64.
источник
Я сталкивался с этим, и он ушел, когда я переключился с https на http. Сертификаты SSL, которые мы используем в dev, не проверяются третьей стороной. Они просто генерируются локально разработчиками.
Те же звонки прекрасно работают в Chrome Canary и Firefox. Эти браузеры не так строги в отношении SSL-сертификата, как Chrome. В Chrome вызовы не будут выполнены с сообщением «ВНИМАНИЕ: Предварительные заголовки ...».
Я думаю / надеюсь, что когда мы используем законный SSL-сертификат на стадии и в prod, мы больше не увидим такого поведения в Chrome.
источник
Просто добавляю два моих цента. Я пишу веб-приложение, используя запросы CORS и полный веб-сервис RESTful. Я обнаружил, что Chrome выдаст эту ошибку, когда у меня возникнет случайное исключение или возникнет ошибка PHP. Просто если кто-нибудь еще столкнется с проблемой. Я обнаружил, что когда это происходит, я могу запустить приложение Chrome «Почтальон - Клиент отдыха» и выполнить точно такой же запрос, но в приложении Chrome я получаю ошибку PHP, которая выдается вместо этой неописательной ошибки.
источник
Я запускал эту проблему, когда пытался загрузить main.js для require js во второй раз после внесения изменений в результате ошибки. Я просто включил в настройках инструментов разработчика "Отключить кэш (когда открыт DevTools)". и это сделало шарм.
источник
Другой возможный сценарий, который я видел, - тот же самый запрос отправляется снова через несколько миллисекунд (скорее всего, из-за ошибки на стороне клиента).
В этом случае вы также увидите, что статус первого запроса «отменен» и что задержка составляет всего несколько миллисекунд.
источник
Это происходило для меня, когда у меня была ссылка для скачивания, и после нажатия на нее я пытался также поймать щелчок с помощью jquery и отправить запрос ajax. Проблема заключалась в том, что когда вы нажимаете на ссылку для скачивания, вы покидаете страницу, даже если она не выглядит так. Если бы не было передачи файла, вы бы увидели запрошенную страницу. Поэтому я установил target = "_ blank" для предотвращения этой проблемы.
источник
Я получил эту ошибку, когда попытался напечатать страницу во всплывающем окне. Был показан диалог печати, и он все еще ждал моего подтверждения или отмены печати во всплывающем окне, в то время как на главной странице также ожидал в фоновом режиме, показывая сообщение ВНИМАНИЕ, предварительные заголовки отображаются, когда я пытаюсь щелкнуть другую ссылку.
В моем случае решение состояло в том, чтобы удалить
window.print ();
скрипт, который он выполнял во<body>
всплывающем окне, чтобы предотвратить диалог печати.источник
Я видел это, когда число подключений к моему серверу превысило максимальное число подключений на сервер в Chrome, равное 6.
источник
Используйте этот код из своего кода:
Это работает для меня.
источник
Вот еще одно решение.
Если вы столкнулись с этой проблемой при вызове $ ajax (), добавьте,
http://
прежде чем ваш serverhost решит вашу проблему.источник
Если вы разрабатываете приложение Asp.Net Mvc и пытаетесь вернуть a
JsonResult
в свой контроллер, обязательно добавьтеJsonRequestBehavior.AllowGet
вJson
метод. Это исправило это для меня.источник
Сообщение «Внимание: показаны временные заголовки» может отображаться, когда веб-сайт, размещенный на HTTPS, вызывает вызовы WebApi, размещенные на HTTP. Вы можете проверить все, если все ваши API-интерфейсы HTTPS. Браузер мешает сделать звонок на небезопасный ресурс. Подобное сообщение вы можете увидеть в своем коде, когда используете FETCH API для домена с HTTP.
Смешанный контент. Страница на https://website.com была загружена по протоколу HTTPS, но запрошен небезопасный ресурс http://webapi.com . Этот запрос был заблокирован; содержание должно быть подано по HTTPS.
источник
У меня была похожая проблема с моим приложением MEAN. В моем случае проблема возникала только в одном запросе get. Я пытался удалить adblock, пытался очистить кеш и пробовал в разных браузерах. Ничего не помогло
наконец, я понял, что API пытается вернуть огромный объект JSON. Когда я попытался отправить небольшой объект, он работал нормально. Наконец, я изменил свою реализацию, чтобы она возвращала буфер вместо JSON.
Я хочу, чтобы expressJS выдавал ошибку в этом случае.
источник
Эта проблема также возникает при использовании некоторых пакетов, таких как
webpack-hot-middleware
и открытие нескольких страниц одновременно.webpack-hot-middleware
создаст соединение для каждой страницы для прослушивания изменений кода, а затем для обновления страницы. У каждого браузера естьmax-connections-per-server
ограничение, равное 6 для Chrome, поэтому, если вы уже открыли более 6 страниц в Chrome, новый запрос будет зависать там до тех пор, пока вы не закроете несколько страниц.источник
В моем случае причиной было расширение AdBlock.
Запрос к серверу прошел, и я получил ответ, но не смог увидеть куки-файлы запроса из-за того, что «Предварительные заголовки ...» отображаются в инструментах Dev. После отключения AdBlock для сайта предупреждение исчезло, и инструменты разработчика снова начали показывать файлы cookie.
Чтобы изменения вступили в силу, необходимо было также закрыть инструменты разработки и обновить страницу.
источник