Совет № 1:
Создайте правильный URL. Вы используете
site
+ "library/Datastore.asp?page="
+ pageName
+ (pageID ? "id=" + pageID : "")
, но верно
site
+ "library/Datastore.asp?page="
+ Server.URLEncode(pageName)
+ (pageID ? "&id=" + Server.URLEncode(pageID) : "")
//-------------^ !!
Совет № 2:
Вместо
Response.Write(xml.transformNode(xsl));
использовать
xml.transformNodeToObject(xsl, Response);
Таким образом, вы не столкнетесь с какими-либо проблемами выходного кодирования.
Совет № 3: (из комментариев: получилось не так.)
Request.ServerVariables("QUERY_STRING")
уже - это строка. Нет необходимости заключать его в new String()
. Очевидно, строки, которые выходят из Request.ServerVariables
, не являются строками JS, поэтому здесь действительно необходимо создать собственный объект String.
Совет № 4:
Для использования на HTTP-сервере (который является многопоточным по своей природе), вы должны использовать Msxml2.ServerXMLHTTP
вместо Microsoft.XMLHTTP
и вместо Microsoft.XMLDOM
вы должны использовать MSXML2.FreeThreadedDOMDocument
.