Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Получить данные от сервера с помощью Ajax


Автор: bms 14.12.2006, 15:52
Есть такой код JavaScript:

Код

<script language="javascript" type="text/javascript">

function loadData(url) {
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        req.onreadystatechange = processReqChange;
        req.open("GET", url, true);
        req.send(null);
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            req.onreadystatechange = processReqChange;
            req.open("GET", url, true);
            req.send();
        }
    }
}


function processReqChange() {   
    ab = window.setTimeout("req.abort();", 5000);
    
    if (req.readyState == 4) {
        clearTimeout(ab);
        
        document.form1.statusnum.value = req.status; 
        document.form1.status.value = req.statusText; 
        
        // if "OK"
        if (req.status == 200) {
            document.form1.response.value=req.responseText;
        } else {
            alert("Не удалось получить данные:\n" + req.statusText);
        }
    }  
}

function requestdata(params)
{
    loadData('AjaxRequest.aspx'+params);
}

</script>


В итоге, я получаю дfнные с сервера в document.form1.response.value, но там содержится весь html код страницы AjaxRequest.aspx
Но мне её код совсем не нужен, мне надо выполнить на PageLoad определённые действия в зависимости от параметров и вернуть только нужные данные, а не весь html код страницы. Как такое сделать?  smile 

PS: Возможно мне следовало создать эту тему в разделе JavaScript?...

Автор: 12345c 14.12.2006, 16:06
Надо подавать не страницу, а управляющие данные (текстом или в XML). Затем вместо document.form1.response.value=... выполняете функцию по анализу req.responseText или req.responseXML.

Автор: bms 14.12.2006, 17:02
Цитата(12345c @ 14.12.2006,  16:06)
Надо подавать не страницу, а управляющие данные (текстом или в XML). Затем вместо document.form1.response.value=... выполняете функцию по анализу req.responseText или req.responseXML.

Хм...
Я не совсем понял что надо сделать. Вместо url передавать управляющие (какие?) данные?
А для req.responseText надо написать функицию что бы распарсить то что пришло?

Автор: NightmareZ 14.12.2006, 20:49
Цитата(bms @  14.12.2006,  17:02 Найти цитируемый пост)
Я не совсем понял что надо сделать. Вместо url передавать управляющие (какие?) данные?

Не в запросе. А в ответе от сервера.


Цитата(bms @  14.12.2006,  17:02 Найти цитируемый пост)
А для req.responseText надо написать функицию что бы распарсить то что пришло?

Да.

Автор: bms 16.12.2006, 00:24
Цитата(NightmareZ @ 14.12.2006,  20:49)
Цитата(bms @  14.12.2006,  17:02 Найти цитируемый пост)
Я не совсем понял что надо сделать. Вместо url передавать управляющие (какие?) данные?

Не в запросе. А в ответе от сервера.



Вот это меня и интересует. Как нужно указать серверу что возвратить?

Автор: 12345c 16.12.2006, 03:53
Как заблагорассудится. Серверу подаётся Get- или Post-запрос. Ещё куки с ним. Задавайте в любом виде.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)