Страница 1 из 1

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

Добавлено: 11 июл 2013, 14:47
stalin45
Здравствуйте!
У меня проблема.
С помощью 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 также меняется! В чем проблема??

What hosting to choose?

Добавлено: 15 окт 2015, 01:51
GeorgeSoca
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