Почему запрос предварительно проверяется, если я добавляю стандартный заголовок http при использовании cors?

Мне нужно добавить некоторую общую дополнительную информацию (должна быть отправлена ​​​​с большинством наших http-запросов) для междоменных http-запросов, дополнительные данные — это что-то вроде информации об устройстве или информации о местоположении. В настоящее время мы используем настраиваемые заголовки http для этой информации, но настраиваемый заголовок заставит браузер отправлять предварительный запрос перед реальным HTTP-запросом, поэтому мы хотим удалить предварительный запрос из соображений производительности. Сначала мы рассматривали возможность использования cookie, но, поскольку запрос является междоменным, мы не можем установить cookie для домена нашего API с помощью javascript. Затем я искал документы, согласно Mozilla docs:

В частности, запрос проходит предварительную проверку, если:

Он использует методы, отличные от GET, HEAD или POST. Кроме того, если POST используется для отправки данных запроса с Content-Type, отличным от application/x-www-form-urlencoded, multipart/form-data или text/plain, например. если запрос POST отправляет полезную нагрузку XML на сервер с использованием application/xml или text/xml, то запрос проходит предварительную проверку.

Он устанавливает пользовательские заголовки в запросе (например, запрос использует заголовок, такой как X-PINGOTHER)

Поэтому я подумал, что если я использую стандартный HTTP-заголовок, который редко используется: заголовок "From", это не вызовет запрос опций. но после того, как я проверил это, я обнаружил, что был неправ, заголовок «От» по-прежнему вызывает запрос параметров.

Итак, у меня есть два вопроса:

  1. Почему стандартный заголовок http запускает предварительный запрос?
  2. Как мне отправить дополнительную информацию, не вызывая предварительный запрос?

Любая помощь будет оценена.


person treblam    schedule 04.12.2015    source источник
comment
для части why проверьте это: stackoverflow.com/a/16945321/550618   -  person regilero    schedule 04.12.2015


Ответы (1)


Прочитайте приведенную выше часть той же страницы о том, что представляет собой простой запрос, который не требует предварительной проверки:

Помимо заголовков, автоматически устанавливаемых агентом пользователя (например, Connection, User-Agent и т. д.), единственными заголовками, которые разрешено устанавливать вручную, являются

  • Accept
  • Accept-Language
  • Content-Language
  • Content-Type

Пользовательские заголовки не означают нестандартные заголовки, это означает любой заголовок, который не устанавливается браузером автоматически, кроме этих четырех.

person hobbs    schedule 04.12.2015