XMLHttpRequest ¶ÔÏó

XMLHttpRequest ¶ÔÏóÓÃÓÚÔÚºǫ́Óë·þÎñÆ÷½»»»Êý¾Ý¡£

ʲôÊÇ XMLHttpRequest ¶ÔÏó£¿

XMLHttpRequest ¶ÔÏóÓÃÓÚÔÚºǫ́Óë·þÎñÆ÷½»»»Êý¾Ý¡£

XMLHttpRequest ¶ÔÏóÊÇ¿ª·¢ÕßµÄÃÎÏ룬ÒòΪÄúÄܹ»£º

  • ÔÚ²»ÖØÐ¼ÓÔØÒ³ÃæµÄÇé¿öϸüÐÂÍøÒ³
  • ÔÚÒ³ÃæÒѼÓÔØºó´Ó·þÎñÆ÷ÇëÇóÊý¾Ý
  • ÔÚÒ³ÃæÒѼÓÔØºó´Ó·þÎñÆ÷½ÓÊÕÊý¾Ý
  • ÔÚºǫ́Ïò·þÎñÆ÷·¢ËÍÊý¾Ý

ËùÓÐÏÖ´úµÄä¯ÀÀÆ÷¶¼Ö§³Ö XMLHttpRequest ¶ÔÏó¡£

ÈçÐèѧϰ¸ü¶àÓÐ¹Ø XMLHttpRequest ¶ÔÏóµÄ֪ʶ£¬ÇëѧϰÎÒÃÇµÄ XML DOM ½Ì³Ì¡£

ʵÀý£ºµ±¼üÈëÎı¾Ê±Óë·þÎñÆ÷½øÐÐ XML HTTP ͨÐÅ¡£

´´½¨ XMLHttpRequest ¶ÔÏó

ËùÓÐÏÖ´úä¯ÀÀÆ÷ (IE7+¡¢Firefox¡¢Chrome¡¢Safari ÒÔ¼° Opera) ¶¼ÄÚ½¨ÁË XMLHttpRequest ¶ÔÏó¡£

ͨ¹ýÒ»Ðмòµ¥µÄ JavaScript ´úÂ룬ÎÒÃǾͿÉÒÔ´´½¨ XMLHttpRequest ¶ÔÏó¡£

´´½¨ XMLHttpRequest ¶ÔÏóµÄÓï·¨£º

xmlhttp=new XMLHttpRequest();

Àϰ汾µÄ Internet Explorer £¨IE5 ºÍ IE6£©Ê¹Óà ActiveX ¶ÔÏó£º

xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

Ìáʾ£ºÔÚÏÂÒ»Õ£¬ÎÒÃǽ«Ê¹Óà XMLHttpRequest ¶ÔÏó´Ó·þÎñÆ÷È¡»Ø XML ÐÅÏ¢¡£

ʵÀý 1

<script type="text/javascript">
var xmlhttp;
function loadXMLDoc(url)
{
xmlhttp=null;
if (window.XMLHttpRequest)
  {// code for all new browsers
  xmlhttp=new XMLHttpRequest();
  }
else if (window.ActiveXObject)
  {// code for IE5 and IE6
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
if (xmlhttp!=null)
  {
  xmlhttp.onreadystatechange=state_Change;
  xmlhttp.open("GET",url,true);
  xmlhttp.send(null);
  }
else
  {
  alert("Your browser does not support XMLHTTP.");
  }
}

function state_Change()
{
if (xmlhttp.readyState==4)
  {// 4 = "loaded"
  if (xmlhttp.status==200)
    {// 200 = OK
    // ...our code here...
    }
  else
    {
    alert("Problem retrieving XML data");
    }
  }
}
</script>

Ç××ÔÊÔÒ»ÊÔ

×¢ÊÍ£ºonreadystatechange ÊÇÒ»¸öʼþ¾ä±ú¡£ËüµÄÖµ (state_Change) ÊÇÒ»¸öº¯ÊýµÄÃû³Æ£¬µ± XMLHttpRequest ¶ÔÏóµÄ״̬·¢Éú¸Ä±äʱ£¬»á´¥·¢´Ëº¯Êý¡£×´Ì¬´Ó 0 (uninitialized) µ½ 4 (complete) ½øÐб仯¡£½öÔÚ״̬Ϊ 4 ʱ£¬ÎÒÃDzÅÖ´ÐдúÂë¡£

ΪʲôʹÓà Async=true £¿

ÎÒÃǵÄʵÀýÔÚ open() µÄµÚÈý¸ö²ÎÊýÖÐʹÓÃÁË "true"¡£

¸Ã²ÎÊý¹æ¶¨ÇëÇóÊÇ·ñÒì²½´¦Àí¡£

True ±íʾ½Å±¾»áÔÚ send() ·½·¨Ö®ºó¼ÌÐøÖ´ÐУ¬¶ø²»µÈ´ýÀ´×Ô·þÎñÆ÷µÄÏìÓ¦¡£

onreadystatechange ʼþʹ´úÂ븴ÔÓ»¯ÁË¡£µ«ÊÇÕâÊÇÔÚûÓеõ½·þÎñÆ÷ÏìÓ¦µÄÇé¿öÏ£¬·ÀÖ¹´úÂëÍ£Ö¹µÄ×ȫµÄ·½·¨¡£

ͨ¹ý°Ñ¸Ã²ÎÊýÉèÖÃΪ "false"£¬¿ÉÒÔʡȥ¶îÍâµÄ onreadystatechange ´úÂë¡£Èç¹ûÔÚÇëÇóʧ°ÜʱÊÇ·ñÖ´ÐÐÆäÓàµÄ´úÂëÎ޹ؽôÒª£¬ÄÇô¿ÉÒÔʹÓÃÕâ¸ö²ÎÊý¡£

Ç××ÔÊÔÒ»ÊÔ

¸ü¶àʵÀý

ͨ¹ý XML HTTP °ÑÒ»¸ö textfile ÔØÈëÒ»¸ö div ÔªËØÖÐ

ͨ¹ý XML HTTP ½øÐÐ HEAD ÇëÇó

ͨ¹ý XML HTTP ½øÐÐÖ¸¶¨µÄ HEAD ÇëÇó

ͨ¹ý XML HTTP Áгö XML ÎļþÖеÄÊý¾Ý

XML / ASP

ÄúÒ²¿ÉÒÔ°Ñ XML Îĵµ´ò¿ª²¢·¢Ë͵½·þÎñÆ÷É쵀 ASP Ò³Ãæ£¬·ÖÎö´ËÇëÇó£¬È»ºó´«»Ø½á¹û¡£

<html>
<body>
<script type="text/javascript">
xmlHttp=null;
if (window.XMLHttpRequest)
  {// code for IE7, Firefox, Opera, etc.
  xmlHttp=new XMLHttpRequest();
  }
else if (window.ActiveXObject)
  {// code for IE6, IE5
  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
if (xmlHttp!=null)
  {
  xmlHttp.open("GET", "note.xml", false);
  xmlHttp.send(null);
  xmlDoc=xmlHttp.responseText;

  xmlHttp.open("POST", "demo_dom_http.asp", false);
  xmlHttp.send(xmlDoc);
  document.write(xmlHttp.responseText);
  }
else
  {
  alert("Your browser does not support XMLHTTP.");
  }
</script>
</body>
</html>

ASP Ò³Ãæ£¬ÓÉ VBScript ±àд£º

<%
set xmldoc = Server.CreateObject("Microsoft.XMLDOM")
xmldoc.async=false
xmldoc.load(request)

for each x in xmldoc.documentElement.childNodes
   if x.NodeName = "to" then name=x.text
next
response.write(name)
%>

ͨ¹ýʹÓà response.write ÊôÐ԰ѽá¹û´«»Ø¿Í»§¶Ë¡£

Ç××ÔÊÔÒ»ÊÔ

XMLHttpRequest ¶ÔÏóÊÇ W3C µÄ±ê×¼Âð£¿

ÈκΠW3C ÍÆ¼ö±ê×¼¾ùδ¹æ¶¨ XMLHttpRequest ¶ÔÏó¡£

²»¹ý£¬W3C DOM Level 3 µÄ "Load and Save" ¹æ·¶°üº¬ÁËһЩÏàËÆµÄ¹¦ÄÜÐÔ£¬µ«ÊÇ»¹Ã»ÓÐÈκÎä¯ÀÀÆ÷ʵÏÖËüÃÇ¡£

²ÎÔÄ

XML DOM ²Î¿¼ÊÖ²á: XMLHttpRequest ¶ÔÏó

VUE