Тема: XMLHttpRequest
Показать сообщение отдельно
  #1 (permalink)  
Старый 03.02.2018, 16:25
Аватар для Conus
Аспирант
Отправить личное сообщение для Conus Посмотреть профиль Найти все сообщения от Conus
 
Регистрация: 05.12.2015
Сообщений: 85

XMLHttpRequest
Доброго дня, пытаюсь разобрать XMLHttpRequest, что-бы толково скрипт но торможу что - то
если кто понимает хорошо без библиотек аякс или кюрия
подскажите
вопросы в комментариях, мне кажется так проще понять суть

тут возможно под разные цели нужно писать разные запросы POST или GET


<body>

<form name="form1">

  <input type="text" name="mod" id="a">
   <input type="button" value="Сумма" onclick="sub()">
  Сумма равна: <span id="sub"></span>

</form>


<script type="text/JavaScript">

 function getXmlHttp()
  {
    var xmlhttp;
    try  { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } 
    catch (e) { try {  xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) {  xmlhttp = false; } }
    if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp = new XMLHttpRequest();  }
    return xmlhttp;
  }



function stat(readyState)
{
  switch (readyState) 
  {
    case 0: return "не инициализирован";  break;      
    case 1: return "загрузка..."; break;   
    case 2:  return "загружено"; break;   
    case 3:  return "в процессе..."; break;      
    case 4:  return "готово"; break;    
    default: return "неизвестное состояние";  
  }  
}

function Send_(xhttp)
{
   xhttp.onreadystatechange = function() 
    { 
        out = window.setTimeout("xhttp.abort();", 5000);

		if (xhttp.readyState == 4)
		{
			clearTimeout(out);
			  if(xhttp.readyState == 4) 
			  { if(xhttp.status == 200)
				{  document.getElementById("sub").innerHTML = xhttp.responseText; 
           // почему ответ целиком страница и как получать отдельно конкретные переменные
				} else { alert("Не удалось получить данные: " + xhttp.statusText); }
			  }
		 }
     } 


}
  function sub() 
  {

    var xhttp = getXmlHttp();
    xhttp.open('POST', '/?', true);  // отзывается, и можно даже обработчик сделать php

<?        
$action = isset($_REQUEST['mod'])? $_REQUEST['mod']: '';
function get($action)
{
	global $modx; 	
	if($action == 'out') 			
	{
		echo 'ok';			
	} else { echo 'no';}
} 
	
if($action) {  get($action); } 
?>

                                                    // пишу файл   xhttp.open('POST', 'clip.txt', true); 
                                                    // хочу из него вытягивать данные но ответ statusText - Not Allowed ?
                                                    
                                           
    xhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 
    xhttp.send("mod=" + encodeURIComponent(document.getElementById("a").value)); 

    Send_(xhttp);
  }

 
    </script>
</div>	
		
</body>


пример файла

<?xml version="1.0"?>
<catalog>
<book id="bk101">
<author>Gamba, Matthew</author>
<title>XML Developer's Guide</title>
</book>
<book id="bk102">
<author>Ralls, Kim</author>
<title>Midnight Rain</title>
</book>
</catalog>

Последний раз редактировалось Conus, 03.02.2018 в 19:49.
Ответить с цитированием