Я пытаюсь отправить простой запрос CORS на внешний сервер приложений, который использует ключ сеанса для авторизации.
$.ajax({
type: "GET",
url: "https://192.168.1.72:8442/api/file/",
headers: {"Authorization": "3238562439e44fcab4036a24a1e6b0fb"}
});
Он отлично работает в Firefox 18, Opera 12.12 и Rekonq 2.0 (использует также WebKit), но не работает в Google Chrome (проверенные версии 21 и 24). В Google Chrome показано, что ресурс OPTIONS Resource не загружается в Network Inspector, и сервер приложений не получает никакого запроса. Я пробовал jQuery 1.8.3 и 1.9.0.
Request URL:https://192.168.1.72:8442/api/file/
Request Headers
Access-Control-Request-Headers:accept, authorization, origin
Access-Control-Request-Method:GET
Cache-Control:no-cache
Origin:https://192.168.1.72:8480
Pragma:no-cache
Если я удаляю заголовки из запроса, я получаю 401 также в Google Chrome и могу получить доступ к ресурсу, если авторизация отключена на сервере приложений. Не имеет значения, какие заголовки отправлены. Только заголовок, который я могу отправить, это { "Content-Type": "plain/text" }. Все другие имена/значения заголовков приводят к ошибке в Google Chrome, но работают во всех браузерах, о которых я упоминал выше.
Почему Google Chrome не обрабатывает заголовки в запросе CORS?