У меня проблема.
С помощью 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
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 также меняется! В чем проблема??