Отключить предпросмотр запроса 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, перейти к его свойствам и изменить цель, как указано выше. Это должно помочь!