Клиентский скрипт работает - серверный нет (IIS, ASP)
От: Adward Россия http://www.sprut.ru
Дата: 14.08.03 09:50
Оценка:
у меня есть скрипт, который загружает из инета определённую страницу, переколбашивает её и вываливает видоизменённую на страницу, вот код:

<html>
<script >
<!--
var    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
function PostOrder()
{
    var url = "http://www.nix.ru/dealers/includes/goods_group_list.html?g_id=13"
    xmlhttp.Open("GET", url, false); 
    xmlhttp.onreadystatechange= HandleStateChange;
    xmlhttp.Send();
}
function HandleStateChange()
{
    document.write(xmlhttp.readyState + "<br>")
    if (xmlhttp.readyState == 4)
    {       
        res = xmlhttp.responseText;
        
        var table = "<table border=1>\n";
            table += res;
            table += "</table>";
            
        document.write(table);
    }
}
onload = PostOrder;
//-->
</script>
</html>

Всё работает.
Но это на клиенте. Браузер IE6

хочу сделать тоже самое, но чтобы работал Серверный код. Лицезрейте:


<html>
<script  runat=server Language="JScript">

var    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
function PostOrder()
{
    var url = "http://www.nix.ru/dealers/includes/goods_group_list.html?g_id=13"
    xmlhttp.Open("GET", url, false); 
    xmlhttp.onreadystatechange= HandleStateChange;
    xmlhttp.Send();
}
function HandleStateChange()
{
    Response.Write(xmlhttp.readyState + "<br>")
    if (xmlhttp.readyState == 4)
    {       
        res = xmlhttp.responseText;
        
        var table = "<table border=1>\n";
            table += res;
            table += "</table>";
            
        Response.Write(table);
    }
}
PostOrder();

</script>
</html>


Однако, при попытки выполнить ЭТО сервер мне возвращает сообщение об ошибке:



Это в том месте, где я делаю

xmlhttp.Send();


Я уже что тока не делал, и разрешения у меня выставленны уже ВЕЗДЕ тоесть всем всё можно...

Может кто мне помочь советом?
Re: Клиентский скрипт работает - серверный нет (IIS, ASP)
От: Аноним  
Дата: 14.08.03 10:16
Оценка:
Здравствуйте, Adward, Вы писали:

A>у меня есть скрипт, который загружает из инета определённую страницу, переколбашивает её и вываливает видоизменённую на страницу, вот код:


XMLHTTP не предназначен для серверных приложений.
Нужно использовать ServerXMLHTTP\WinHTTP
Re[2]: Клиентский скрипт работает - серверный нет (IIS, ASP)
От: Adward Россия http://www.sprut.ru
Дата: 14.08.03 11:14
Оценка:
Здравствуйте, Аноним, Вы писали:
A>>у меня есть скрипт, который загружает из инета определённую страницу, переколбашивает её и вываливает видоизменённую на страницу, вот код:

А>XMLHTTP не предназначен для серверных приложений.

А>Нужно использовать ServerXMLHTTP\WinHTTP

Поискал в интернете именно эту тему.
нашёл статью Получение и отправка данных с других web-сайтов из asp-скрипта. Часть II. MSXML

Вот собственно код, который я и хочу выполнить(слегка видоизменив из Доки):
<%
'В реальности берется либо из Request.QueryString либо из WScript.Arguments
Dim strPOSTdata: strPOSTdata="213.59.42.2"
'Создаем объект XMLHTTP (для серверных приложений лучше использовать ServerXMLHTTP)
Dim objHTTP: Set objHTTP = CreateObject("MSXML2.XMLHTTP") objHTTP.open "POST", "http://isp.krasnoyarsk.ru/whois.cgi", False 
objHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objHTTP.send("addr=" & strPOSTdata) 'Посылаем запрос и данные
If objHTTP.status=200 Then  
    Response.Write objHTTP.responseText 'если запрос Ok, то выводим..
End If
Set objHTTP=Nothing
%>

Однако же опять таки выскакивает ошибка на objHTTP.send()


Причём, если я поднимаю объект CreateObject("MSXML2.XMLHTTP")
Ошибка называет себя как


если я поднимаю CreateObject("MSXML2.ServerXMLHTTP")

Ошибается на:


P.S. Пинг до хоста 213.59.42.2 проходит ровно....
Трабла?
Re[3]: Клиентский скрипт работает - серверный нет (IIS, ASP)
От: Аноним  
Дата: 15.08.03 10:28
Оценка:
Здравствуйте, Adward, Вы писали:

А>>XMLHTTP не предназначен для серверных приложений.

А>>Нужно использовать ServerXMLHTTP\WinHTTP

A>Поискал в интернете именно эту тему.

A>нашёл статью Получение и отправка данных с других web-сайтов из asp-скрипта. Часть II. MSXML
A>Однако же опять таки выскакивает ошибка на objHTTP.send()
A>если я поднимаю CreateObject("MSXML2.ServerXMLHTTP")
A>Ошибается на:
A>Тип ошибки:
A>msxml3.dll (0x80072EFD)
A>Не удается установить соединение с сервером
A>Трабла?
Есть трабла
Необходимо конфигурить проксю
Search MSDN: Proxy AND ServerXMLHTTP
Re[2]: В продолжение темы...
От: Аноним  
Дата: 17.08.03 11:00
Оценка:
Здравствуйте, Аноним, Вы писали:

A>>у меня есть скрипт, который загружает из инета определённую страницу, переколбашивает её и вываливает видоизменённую на страницу, вот код:


А>XMLHTTP не предназначен для серверных приложений.

А>Нужно использовать ServerXMLHTTP\WinHTTP

Попробывал следующее:

<%@language=JScript%>
<% 
var srvXmlHttp = Server.CreateObject("Msxml2.ServerXMLHTTP");
srvXmlHttp.open ("GET", "http://www.ru/", false);
srvXmlHttp.setRequestHeader("Content-Type", "text/html; charset=windows-1251");
srvXmlHttp.send();
Response.write(srvXmlHttp.responseText);
%>


Код заработал на сервере, но продолжает неработать на моей машине.
Тут я вразумел, что скорее всего у меня не работает потому, что я хожу через прокси.
Искал в msdn'е выход, нашёл метод

srvXmlHttp.setProxy(proxySetting, varProxyServer, varBypassList);

Достаточно скудная информация о нём на http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk/htm/xml_mth_sz_65q1.asp

Мало того, непонятно,каким образом задавать параметры, что такое proxySetting — не ясно...(ProxyServer и BypassList вроде как понятны — имя сервера и исключения)

Больше всего меня убило то, что сервер мой выдаёт ошибку:


Ошибка выполнения Microsoft JScript (0x800A01B6)
Объект не поддерживает это свойство или метод
/test.asp, line 6


Это он на setProxy ругается...

Может кто из Гуру мне подскажет, что и как?
буду рад, спасибо заранее....
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.