JS (AJAX) + php + telnet, выполнение без перезагрузки страницы

Обсуждение вопросов клиентского программирования.

Модератор: Duncon

Ответить
stalin45
Сообщения: 1
Зарегистрирован: 11 июл 2013, 14:34

11 июл 2013, 14:47

Здравствуйте!
У меня проблема.
С помощью JS и AJAX я запускаю исполнение php-кода, который должен менять IP у свича.
вот JS код:

Код: Выделить всё

<script>  
function ge(id)
{
    return document.getElementById(id);
}

function changeIP() {  
  
        var query;
   	    var ip = encodeURIComponent(ge('_ip').value);
        var mask = encodeURIComponent(ge('_mask').value);
	    var vlan = encodeURIComponent(ge('_vlan').value);
        var ipad = encodeURIComponent(ge('curIP').innerHTML);
  
        var req = createRequestObject();  
        if( req )   
        {  
			query = 'ip='+ip+'&mask='+mask+'&vlan='+vlan+'&ipaddress='+ipad;
            req.open('POST', 'telnetChange.php' , true );
			req.onreadystatechange = function ()   
            {  
				if(req.readyState == 4)   
                {  
                    document.getElementById('loading').innerHTML = req.responseText;//"Succeed!";
    			}
   				else
   				{ 
       			    document.getElementById('loading').innerHTML = 'Loading.........';
    			}
            }  
			req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
			req.send(query);     
        }  
        else   
        {  
            return null;
        }  
    }  

    function createRequestObject()   
    {  
        try { return new XMLHttpRequest() }  
        catch(e)   
        {  
            try { return new ActiveXObject('Msxml2.XMLHTTP') }  
            catch(e)   
            {  
                try { return new ActiveXObject('Microsoft.XMLHTTP') }  
                catch(e) { return null; }  
            }  
        }  
    }  
</script>  
А вот код php (telnetChange.php):

Код: Выделить всё

<?php
include("telnetControlClass.php");
$telnet = new PHPTelnet();
$control1 = new telnetControlClass();
    echo "lol";
    $control1->conTelnet($telnet, $_POST['ipaddress']);
    $control1->changeConfigVLAN($telnet, $_POST['ip'], $_POST['mask'], $_POST['vlan']);
     $control1->changeConfigVLAN($telnet, $_POST['ip'], $_POST['mask'], $_POST['vlan']);
?>
Проблема в следующем:
req.status всегда равен 0,
req.readyState сразу = 4.
А req.responceText = ""
Хром при отладке пишет такое: ИзображениеИзображение
Если медленно проходить дебагом, то IP меняется, все нормально, если вызывать php просто формой, то IP также меняется! В чем проблема??
GeorgeSoca
Сообщения: 0
Зарегистрирован: 12 окт 2015, 04:09
Откуда: Guam
Контактная информация:

15 окт 2015, 01:51

Pa vart webbhotell kan ni kanna er trygg! Forutom att vi anvander oss av speglade harddiskar pa alla vara servrar sa tar vi aven backup tva ganger per dygn pa separata servrar. Vi anvander oss av ISPmanager som kontrollpanel. ISPmanager ar en kontrollpanel som gor det enkelt att administrera sin hemsida. Hos oss kan ni lagga hur manga hemsidor och domaner ni onskar under ett webbhotellskonto.
virtual hosting
Ответить