XDomainRequest может быть заставлен работать с SSL?

У меня есть код, который использует объект XDomainRequest Microsoft в IE8. Код похож на это:

var url = "http://<host>/api/acquire?<query string>";  
var xdr = new XDomainRequest();  
xdr.onload = function(){  
    $.("#identifier").text(xdr.responseText);  
};  
xdr.open("GET", url);  
xdr.send();  

Когда схемой в "URL" является "http://", команда хорошо работает. Однако то, когда схема "https://" IE8, дает мне ошибку JavaScript "Доступа запрещен". Обе схемы хорошо работают в FF 3.6.3, где я, конечно, использую XmlHttpRequest. С обоими браузерами я выполняю Управление доступом W3C. "http://" работает перекрестный источник на оба браузера. Таким образом, проблема с IE8, XDomainRequest и SSL.

Сертификат SSL не является проблемой. Если я ввожу https://<host> / в строку поиска IE8, где <host> совпадает с в "URL" выше, прекрасные загрузки страницы.

Таким образом, у нас есть следующее:
- удар https://<host> / непосредственно от браузера хорошо работает;
- удар https://<host>/api/acquire?<query string> через XDomainRequest не позволяется.

Это может быть сделано? Я пропускаю что-то?

16
задан kay 15 August 2013 в 19:39
поделиться

1 ответ

По-видимому, ответ здесь: http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx

Пункт 7 на этой странице гласит: "Запросы должны быть направлены на ту же схему, что и страница хостинга."

Вот часть вспомогательного текста для пункта 7:

"Мы определенно хотели предотвратить создание HTTPS-страниц, делающих XDomainRequests для HTTP-ресурсов. XDomainRequests для ресурсов на базе HTTP, поскольку такой сценарий представляет собой Угроза безопасности смешанного содержимого, которую многие разработчики и большинство пользователей не понимают.

Однако, это ограничение является слишком широким, поскольку оно не позволяет HTTP-страницам выдавать XDomainRequests для HTTP-ресурсов. страницам выдавать XDomainRequests, направленные на HTTPS страницы. Хотя это правда, что сама HTTP-страница может быть скомпрометирована, нет никаких причины, по которой ей должно быть запрещено получать публичные ресурсы безопасно."

В настоящее время кажется, что ответ на мой первоначальный вопрос таков: ДА, если страница хостинга может использовать схему "https://"; НЕТ, если не может.

18
ответ дан 30 November 2019 в 22:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: