Попередню перевірку можна застосувати лише до запиту, а не до всього домену. Я поставив те саме питання у списку розсилки, і там були проблеми безпеки. Ось вся нитка: http://lists.w3.org/Archives/Public/public-webapps/2012AprJun/0228.html
Існує кілька речей, які слід врахувати, якщо ви хочете обмежити кількість попередніх перевірок. Перше зауважимо, що браузери на основі WebKit / Blink встановили максимальний кеш перед вильотом 10 хвилин:
https://github.com/WebKit/webkit/blob/master/Source/WebCore/loader/CrossOriginPreflightResultCache.cpp
https://chromium.googlesource.com/chromium/blink/+/master/Source/core/loader/CrossOriginultRef .cpp
(Я не впевнений, що це справедливо для інших браузерів). Тож, хоча ви завжди повинні встановлювати заголовок Access-Control-Max-Age, максимальне значення становить 10 хвилин.
Далі зауважте, що неможливо уникнути попередньої перевірки запитів PUT / DELETE. Отже, оновлення / видалення вашого API вимагатиме принаймні одного попереднього вильоту кожні 10 хвилин.
У GET / POST уникайте користувацьких заголовків, якщо це можливо, оскільки вони все ще запускають попередні перевірки. Якщо ваш API повертає JSON, зверніть увагу, що Content-Type 'application / json' також ініціює попередню перевірку.
Якщо ви готові відхилитись від того, наскільки "API для вашого відпочинку", є ще кілька речей, які ви можете спробувати. Одним з них є використання типу вмісту, який не потребує попередньої перевірки, наприклад, "text / plain" Спеціальні заголовки завжди запускають попередні перельоти, тому, якщо у вас є будь-які спеціальні заголовки, ви можете перемістити їх у параметри запиту. На крайньому кінці ви можете використовувати протокол, такий як JSON-RPC, де всі запити робляться до однієї кінцевої точки.
Чесно кажучи, через обмеження кеш-пам’яті браузера на 10 хвилин та URL-адреси ресурсів REST, кеш попереднього друку досить марний. Дуже мало ви можете зробити, щоб обмежити попередні вильоти протягом тривалого запуску програми. Я сподіваюся, що автори специфікації CORS спробують вирішити цю проблему в майбутньому.