Ошибка безопасности при использовании CORS в IE10 с Node и Express

Я создаю приложение Backbone, размещенное наhttp://example.com который использует API, размещенный наhttps://api.example.com, Для API я использую Node.js с каркасом Express.js. Мое решение CORS, похоже, работает во всех основных браузерах, кроме IE (оно даже не работает в IE10).

Когда запрос инициируется из IE10, запрос никогда не попадает на сервер API. Насколько я могу судить, запрос даже не отправляется. Когда я проверяю запрос с помощью инструментов разработчика IE10, заголовки запроса и заголовка ответа остаются пустыми. Когда запрос отправляется изЛюбые в другом браузере запрос получен и ответ сгенерирован правильно.

Это ошибка, которую я вижу в консоли:

SCRIPT 7002: XMLHttpRequest: Network Error 0x4c7, The operation was canceled by the user.

В запросе используется jQuery:

$.ajax({
  url: apiRoot + "/endpoint",
  success: function(response) {
    // Omitted irrelevant code
  }
});

Согласно сэто статья, CORS отключен в IE по умолчанию и должен быть включен:

Internet Explorer игнорирует заголовки Access-Control-Allow и по умолчанию запрещает перекрестный доступ к Интернет-зоне. Чтобы включить CORS, зайдите в Сервис-> Свойства обозревателя-> вкладка Безопасность, нажмите кнопку «Пользовательский уровень». Найдите Разное -> Доступ к источникам данных по доменам и выберите опцию «Включить».

Конечно, когда я включаю этот параметр, запрос проходит, и все работает как надо. Тем не менее, я прочитал, что этот параметр на самом деле не связан с CORS ине должен повлиять на это. Когда используешьэтот инструмент для проверки совместимости с CORS, IE10 проходит независимо от того, включен этот параметр или нет, что заставляет меня поверить, что CORSявляется включен, и я просто делаю что-то не так.

Кроме того, кажется, что все работает как надо, когда я бегуобманщик, так как Fiddler действует как прокси.

Для справки вот код, связанный с CORS на стороне сервера:

res.header("Access-Control-Allow-Origin", "example.com");
res.header("Access-Control-Allow-Methods", "GET, PUT, POST, DELETE, OPTIONS");
res.header("Access-Control-Allow-Headers", "Content-Type, Authorization, X-File-Name, X-File-Size, X-File-Type");
res.header("Access-Control-Allow-Credentials", true);
if (req.method == "OPTIONS") {
 res.send(200);
}

Ответы на вопрос(3)

Ваш ответ на вопрос