Отключить предпросмотр запроса OPTION при отправке запроса кросс-домена с помощью настраиваемого HTTP-заголовка

Я только что узнал, что мой браузер отправляет дополнительный запрос "OPTION" при попытке сделать межсетевой вызов ajax с помощью настраиваемого HTTP-заголовка. Я предполагаю, что это называется "предполетным запросом".

Можно ли отключить эту функцию и просто отправить исходный запрос?

Это мой код тестирования javascript:

$(document).ready(function() {
    $.ajax({
        url: "http://google.fr",
        crossDomain: true,
        headers: {
            "X-custom-parameter": true
        }
    });
});

Спасибо за помощь!

Ответ 1

Нет, невозможно обойти запрос предварительной проверки CORS. Предпрофессиональный запрос существует, чтобы обеспечить междоменные запросы безопасным образом. В приведенном выше примере вы пытаетесь получить доступ к google.fr, но google.fr не поддерживает CORS. Для Google это не так, поскольку Google не поддерживает междоменные запросы на своей веб-странице. В общем, если у вас есть права собственности на сервер, ваши варианты должны поддерживать CORS, поддерживать альтернативные междоменные хаки, такие как JSON-P, или использовать прокси-сервер на стороне сервера.

Ответ 2

Preflight - это функция веб-безопасности, реализованная браузером. Для Chrome вы можете отключить всю веб-безопасность, добавив флаг --disable-web-security.

Например: "C:\Program Files\Google\Chrome\Application\chrome.exe" --disable-web-security --user-data-dir="C:\newChromeSettingsWithoutSecurity". Вы можете сначала создать новый ярлык Chrome, перейти к его свойствам и изменить цель, как указано выше. Это должно помочь!