В хроме все нормально работает.
Файрфокс не получив ответа от некоторых php файлов вызывает несколько раз пока не получит ответ, а некоторые один раз вызовет, они не отработают и происходит ошибка.
Кто-нибудь сталкивался с таким поведением и какие есть догадки?
А вот если вызываю php файл подставив адрес с параметрами в адресную строку, то все работает нормально. Адрес с параметрами выглядит так:
php/getCreateAnketa.php?how_much=0&type=false&free_used=0&name=qqqqq&countf=3&sender=161575935&q1=qqq&q2=qq&q3=qqqq
Вызывается php-файл таким образом:
var url = "php/getCreateAnketa.php?how_much=" + x + "&type=" + type + "&free_used=" + free_used + "&name="+to_send;
getCreateAnketa.open("GET", url, true);
getCreateAnketa.onreadystatechange = gotCreateAnketa;
getCreateAnketa.send(null);
Спустя 25 минут, 9 секунд (13.02.2012 - 09:37) redreem написал(а):
мы угадать должны что за "зверушка" такая этот getCreateAnketa?
Спустя 3 часа, 30 минут, 54 секунды (13.02.2012 - 13:08) Doszhan написал(а):
Да, тупанул)
var getCreateAnketa = false; try { getCreateAnketa = new XMLHttpRequest(); } catch (trymicrosoft) { try { getCreateAnketa = new ActiveXObject("Msxml2.XMLHTTP"); } catch (othermicrosoft) { try { getCreateAnketa = new ActiveXObject("Microsoft.XMLHTTP"); } catch (failed) {getCreateAnketa = false;}}} if (!getCreateAnketa) {alert("Error initializing XMLHttpRequest!");}
Спустя 1 час, 28 минут, 24 секунды (13.02.2012 - 14:36) redreem написал(а):
есть предложение врубить ajax через jQuery.
если хочется разбираться с кроссбраузерностью чистого XMLRequest - вот кроссбраузерный пример, допиливайте сами уже:
файл ins.php
если хочется разбираться с кроссбраузерностью чистого XMLRequest - вот кроссбраузерный пример, допиливайте сами уже:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>XML</title>
<script type="text/javascript">
xmlHttp = createXmlHttpRequestObject();
function createXmlHttpRequestObject() {
var xmlHttp;
if(window.ActiveXObject) {try {xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");}
catch (e)
{xmlHttp = false;}}
else
{try{ xmlHttp = new XMLHttpRequest();}
catch(e){xmlHttp = false;}}
if (!xmlHttp) alert("Ошибка создания объекта");else {return xmlHttp;}
}
function voit() {
if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0) {
name = encodeURIComponent(document.getElementById("name").value);
xmlHttp.open("GET", "/ins.php?name=" + name, true);
xmlHttp.onreadystatechange = ServerResponse;
xmlHttp.send(null);
} else {setTimeout(voit(), 100);}
}
function ServerResponse() {
if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
data = xmlHttp.responseText;
document.getElementById('vote_status').innerHTML = '<i>'+data+'</i>';
setTimeout(voit(), 1000);
} else {
alert("Не могу связаться с сервером");
}
}
}
</script>
</head>
<body>
Введите чтонибудь: <input type="text" name="name" id="name"/> <input type="button" value="Отправить" onclick="voit()"/>
<div id="vote_status">Здесь будет статус выполнения</div>
</body>
</html>
файл ins.php
<?php
header('Content-Type: text/xml charset=windows-1251');
if (isset($_GET['name'])) {
$name = $_GET['name'];
echo iconv('cp1251','utf-8','Вы ввели: '.$name);
} else {
echo 'Ошибка передачи данных';
}
?>