Я загружаю XML со страницы aspx с помощью MSXML2.DOMDOCUMENT.3.0 ActiveXObject.
var xmlDoc = null;
try {
xmlDoc = new ActiveXObject("MSXML2.DOMDocument.3.0");
xmlDoc.setProperty("SelectionLanguage", "XPath");
}
catch (e) {
window.alert("CreateXMLDocument failed due to the following problem: " + e.description);
}
if (xmlDoc != null) {
xmlDoc.async = false;**
var result = xmlDoc.load("xmlData.aspx");
if (result == false) {
window.alert("failed to load xml due to the following problem: " + xmlDoc.parseError.Reason);
}
else {
window.alert(xmlDoc.selectSingleNode("//RESULT").text);
}
}
Страница aspx, которая предоставляет данные XML:
<%@ Page Language = "JScript" EnableSessionState="ReadOnly" %>
<% Response.Buffer = true %>
<%
Response.ContentType = "text/xml";
Response.Write("<?xml version='1.0'?>");
Response.Write("<RESULT>1</RESULT>");
%>
- Если эти две страницы работают под http , я могу получить всплывающее окно с сообщением «1» в IE9 ;
- Если эти две страницы работают под https , я могу только получить всплывающее сообщение об ошибке, что означает, что xml не был загружен успешно.
- Но если я изменю xmlDoc.async = true и использую функцию обратного вызова ondataavailable для получения данных, появится всплывающее окно "1".
Есть идеи по этому поводу?
ОБНОВЛЕНИЕ: я выяснил, что XMLDOM не может синхронно загружать XML из https в IE9, а затем использовал XMLHTTP для загрузки XML без проблем. Но теперь проблема в том, что загруженный XMLHTTP xslt не может быть использован для преобразования xml.
ОБНОВЛЕНИЕ СНОВА: неверно говорить, что XML DOM не может синхронно загружать XML из https в IE9. В окне «Свойства обозревателя IE9» -> «Дополнительно» -> «Безопасность» -> «Не сохранять зашифрованные страницы на диск», если он установлен, возникает проблема. Снимите флажок, проблема решена.