½¨Õ¾Ñ§ - ÇáËɽ¨Õ¾´Ó´Ë¿ªÊ¼£¡

½¨Õ¾Ñ§-¸öÈ˽¨Õ¾Ö¸ÄÏ,ÍøÒ³ÖÆ×÷,ÍøÕ¾Éè¼Æ,ÍøÕ¾ÖÆ×÷½Ì³Ì

Ïê½âAJAXºËÐÄ¡ªXMLHttpRequest ¶ÔÏó

ʱ¼ä:2009-04-14 23:14À´Ô´: ×÷Õß: µã»÷: ´Î
ÎÒҪ˵µÄÄÚÈݶ¼ÊǷdz£»ù´¡µÄÄÚÈÝ£¬¸ßÊÖ¾ÍÃâ¿´ÁË£¬Èç¹û¿´ÁË»¶Ó­¸øµãÒâ¼û°¡¡£ÐÂÊÖ»òÕ߶ԵͲ㻹²»ÊǺÜÁ˽âµÄÈË¿ÉÒÔ¿´¿´£¬°ïÖúÀí½âÓë¼ÇÒä¡£¿´ËÆÒ»Çж¼OKÁË£¬¿ÉÊÇÓÐûÓÐÏë¹ý£¬Èç¹ûHTML´úÂëÔÚÍøÂç´«Êä¹ý³ÌÖгö´íÁË£¬»òÕßÎÒÃÇÖ¸¶¨µÄµØַʧЧ»áÔõôÑùÄØ¡£Õâ¸öʱºò¾ÍÐèÒªÓõ½stat

ÎÒҪ˵µÄÄÚÈݶ¼ÊǷdz£»ù´¡µÄÄÚÈÝ£¬¸ßÊÖ¾ÍÃâ¿´ÁË£¬Èç¹û¿´ÁË»¶Ó­¸øµãÒâ¼û°¡¡£ÐÂÊÖ»òÕ߶ԵͲ㻹²»ÊǺÜÁ˽âµÄÈË¿ÉÒÔ¿´¿´£¬°ïÖúÀí½âÓë¼ÇÒä¡£

XMLHttpRequest ¶ÔÏóÊÇAJAX¹¦ÄܵĺËÐÄ£¬Òª¿ª·¢AJAX³ÌÐò±ØÐë´ÓÁ˽âXMLHttpRequest ¶ÔÏó¿ªÊ¼¡£

Á˽âXMLHttpRequest ¶ÔÏó¾ÍÏÈ´Ó´´½¨XMLHttpRequest ¶ÔÏó¿ªÊ¼£¬ÔÚ²»Í¬µÄä¯ÀÀÆ÷Öд´½¨XMLHttpRequest ¶ÔÏóʹÓò»Í¬µÄ·½·¨£º

ÏÈ¿´¿´IE´´½¨XMLHttpRequest ¶ÔÏóµÄ·½·¨£¨·½·¨1£©£º

var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");  //ʹÓýÏа汾µÄ IE ´´½¨ IE ¼æÈݵĶÔÏó£¨Msxml2.XMLHTTP£©
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); //ʹÓýÏÀÏ°æ±¾µÄ IE ´´½¨ IE ¼æÈݵĶÔÏó£¨Microsoft.XMLHTTP£©

¶ø Mozilla¡¢Opera¡¢Safari ºÍ´ó²¿·Ö·ÇIEµÄä¯ÀÀÆ÷¶¼Ê¹ÓÃÏÂÃæÕâÖÖ·½·¨£¨·½·¨2£©´´½¨XMLHttpRequest ¶ÔÏó£º

var xmlhttp = new XMLHttpRequest();

ʵ¼ÊÉÏInternet Explorer ʹÓÃÁËÒ»¸öÃûΪ XMLHttp µÄ¶ÔÏ󣬶ø²»ÊÇ XMLHttpRequest ¶ÔÏ󣬶ø Mozilla¡¢Opera¡¢Safari ºÍ ´ó²¿·Ö·Ç Microsoft ä¯ÀÀÆ÷¶¼Ê¹ÓõÄÊǺóÕߣ¨ÏÂÎÄͳ³Æ XMLHttpRequest ¶ÔÏ󣩡£IE7¿ªÊ¼Ò²¿ªÊ¼Ê¹ÓÃXMLHttpRequest ¶ÔÏóÁË¡£

ÔÚ´´½¨ XMLHttpRequest ¶ÔÏóµÄʱºòÈç¹û²»Í¬µÄä¯ÀÀÆ÷ʹÓÃÁ˲»ÕýÈ·µÄ·½·¨ä¯ÀÀÆ÷¶¼½«»á±¨´í£¬²¢ÇÒÎÞ·¨Ê¹ÓøöÔÏó¡£ËùÒÔÎÒÃÇÐèÒªÒ»ÖÖ¿ÉÒÔ¼æÈݲ»Í¬ä¯ÀÀÆ÷µÄ´´½¨XMLHttpRequest ¶ÔÏóµÄ·½·¨£º

´´½¨¼æÈݶàä¯ÀÀÆ÷µÄ XMLHttpRequest ¶ÔÏó·½·¨

ÅжÏÊÇ·ñ´´½¨³É¹¦¾ÍºÜ¼òµ¥ÁË

if (!xmlhttp){
 
//´´½¨XMLHttpRequest ¶ÔÏóʧ°Ü!
}
else{
 
//´´½¨³É¹¦!
}

´´½¨ºÃÁËXMLHttpRequest ¶ÔÏóÎÒÃÇÔÙÀ´¿´¿´Õâ¸ö¶ÔÏóµÄ·½·¨¡¢ÊôÐÔÒÔ¼°×îÖØÒªµÄonreadystatechangeʼþ¾ä±ú°É¡£

·½·¨£º

  • open() ˵Ã÷£º³õʼ»¯ HTTP ÇëÇó²ÎÊý£¬ÀýÈç URL ºÍ HTTP ·½·¨£¬µ«ÊDz¢²»·¢ËÍÇëÇó¡£
  • abort() ˵Ã÷£ºÈ¡Ïûµ±Ç°ÏìÓ¦£¬¹Ø±ÕÁ¬½Ó²¢ÇÒ½áÊøÈκÎδ¾öµÄÍøÂç»î¶¯¡£
  • getAllResponseHeaders() ˵Ã÷£º°Ñ HTTP ÏìӦͷ²¿×÷Ϊδ½âÎöµÄ×Ö·û´®·µ»Ø¡£
  • getResponseHeader() ˵Ã÷£º·µ»ØÖ¸¶¨µÄ HTTP ÏìӦͷ²¿µÄÖµ¡£
  • send() ˵Ã÷£º·¢ËÍ HTTP ÇëÇó£¬Ê¹Óô«µÝ¸ø open() ·½·¨µÄ²ÎÊý£¬ÒÔ¼°´«µÝ¸ø¸Ã·½·¨µÄ¿ÉÑ¡ÇëÇóÌå¡£
  • setRequestHeader() ˵Ã÷£ºÏòÒ»¸ö´ò¿ªµ«Î´·¢Ë͵ÄÇëÇóÉèÖûòÌí¼ÓÒ»¸ö HTTP ÇëÇó¡£

ÊôÐÔ£º

  • readyState ˵Ã÷£ºHTTP ÇëÇóµÄ״̬¡£
  • responseText ˵Ã÷£ºÄ¿Ç°ÎªÖ¹Îª·þÎñÆ÷½ÓÊÕµ½µÄÏìÓ¦Ì壨²»°üÀ¨Í·²¿£©£¬»òÕßÈç¹û»¹Ã»ÓнÓÊÕµ½Êý¾ÝµÄ»°£¬¾ÍÊÇ¿Õ×Ö·û´®¡£
  • responseXML ˵Ã÷£º¶ÔÇëÇóµÄÏìÓ¦£¬½âÎöΪ XML ²¢×÷Ϊ Document ¶ÔÏ󷵻ء£
  • status ˵Ã÷£ºÓÉ·þÎñÆ÷·µ»ØµÄ HTTP ״̬´úÂë¡£
  • statusText ˵Ã÷£ºÕâ¸öÊôÐÔÓÃÃû³Æ¶ø²»ÊÇÊý×ÖÖ¸¶¨ÁËÇëÇóµÄ HTTP µÄ״̬´úÂë¡£
    onreadystatechange ÊÇÿ´Î readyState ÊôÐԸıäµÄʱºòµ÷ÓõÄʼþ¾ä±úº¯Êý¡£

ÏÂÃæ´Ó·¢ËÍÇëÇó²¢´¦ÀíÇëÇó½á¹ûµÄ¹ý³ÌÀ´Àí½âÒ»ÏÂXMLHttpRequest ¶ÔÏó°É¡£

·¢ËÍÇëÇó֮ǰ×ÔÈ»¾ÍÊÇÉú³ÉÒ»¸öXMLHttpRequest ¶ÔÏ󣬴úÂëÉÏÃæÓÐÁ˾Ͳ»¶àдÁË¡£

Éú³ÉÒ»¸öXMLHttpRequest ¶ÔÏó

var xmlhttp = CreateXMLHttp();

´´½¨ºÃXMLHttpRequest ¶ÔÏóÁË£¬ÄÇÎÒÃÇÒªËÍÇëÇóµ½ÄĸöÍøÕ¾ÄØ£¬¾ÍÑ¡Ôñ²©¿ÍÔ°Ê×Ò³µÄRSS°É¡£ÄÇÔõôÉèÖÃÎÒÒªÇëÇóµÄÍøÕ¾µØÖ·ÄØ£¬Ê¹ÓÃopen()·½·¨¡£
open(method, url, async, username, password)
¸Ã·½·¨ÓÐ5¸ö²ÎÊý£¬¾ßÌåʲôÒâ˼¿ÉÒÔ¿´ÕâÀhttp://www.w3school.com.cn/xmldom/dom_http.asp
ÎÒÃÇÓõľÍÊÇÕâ¸öÁË¡£

xmlHttp.open("get","http://www.cnblogs.com",true);

get²ÎÊý±íʾÓÃget·½·¨£¬µÚ¶þ¸ö×ÔÈ»¾ÍÊÇÄ¿±êµØÖ·£¬²©¿ÍÔ°Ê×Ò³£¬µÚÈý¸ö¾ÍÊDZíʾÊÇ·ñÒì²½ÁË£¬ÎÒÃǵ±È»Ê¹ÓÃtrueÁË¡£¾ßÌåµÄ²ÎÊý˵Ã÷»¹¶¼¿ÉÒÔµ½http://www.w3school.com.cnÉÏÃæ¿´ÁË¡£
ºÃÁË£¬Ä¿±ê¶¨ºÃÁË£¬Ôõô·¢ËÍÄØ¡£ÓÃsend()·½·¨¡£
send(body)£¬send()·½·¨Ö»ÓÐÒ»¸ö²ÎÊý£¬±íʾDOM¶ÔÏó£¬Õâ¸öDOM¶ÔÏóÐèҪ˵Ã÷µÄÄÚÈݺܶ࣬Ï´Î˵£¬½ñÌìÎÒÃÇֻҪд

 

xmlhttp.send(null);

¾Í¿ÉÒÔÁË¡£ºÃÁË£¬·¢ËÍÁË£¬ÄÇÔõô´¦Àí·µ»ØµÄ½á¹ûÄØ£¬Õâ¸öʱºò¾ÍÓõ½XMLHttpRequest ¶ÔÏó×îÖØÒªµÄ¶«Î÷ÁË£¬ÄǾÍÊÇonreadystatechangeʼþ¾ä±ú¡£Ê²Ã´Òâ˼ÄØ£¬ÄǾÍÐèҪ˵Ã÷Ò»ÏÂXMLHttpRequest ¶ÔÏóµÄreadyStateÁË£¬readyStateÓÐ5ÖÖ״̬£¬·Ö±ðÓÃÊý×ÖµÄ 0 µ½ 4 À´±íʾ¡£

״̬      Ãû³Æ            ÃèÊö
0      Uninitialized       ³õʼ»¯×´Ì¬¡£XMLHttpRequest ¶ÔÏóÒÑ´´½¨£¨Î´µ÷ÓÃopen()֮ǰ£©»òÒѱ» abort() ·½·¨ÖØÖá£
1      Open           open() ·½·¨Òѵ÷Ó㬵«ÊÇ send() ·½·¨Î´µ÷Óá£ÇëÇó»¹Ã»Óб»·¢ËÍ¡£
2      Sent            Send() ·½·¨Òѵ÷Óã¬HTTP ÇëÇóÒÑ·¢Ë͵½ Web ·þÎñÆ÷¡£Î´½ÓÊÕµ½ÏìÓ¦¡£
3      Receiving      ËùÓÐÏìӦͷ²¿¶¼ÒѾ­½ÓÊÕµ½¡£ÏìÓ¦Ì忪ʼ½ÓÊÕµ«Î´Íê³É¡£
4      Loaded         HTTP ÏìÓ¦ÒѾ­ÍêÈ«½ÓÊÕ¡£

µ«ÊÇÐèҪעÒâµÄÊÇ£¬onreadystatechangeʼþ¾ä±ú²»Í¬µÄä¯ÀÀÆ÷ÄÜ´¦ÀíµÄ״̬²¢²»Ò»Ö£¬IEºÍFireFoxÄÜ´¦Àí1µ½4£¬¶øSafariÄÜ´¦Àí2µ½4µÄ״̬£¬Opera ÄÜ´¦Àí3¡¢4Á½ÖÐ״̬¡£0µÄ״̬»ù±¾Ã»Ê²Ã´Óã¬ÒòΪ´´½¨ÁËXMLHttpRequest ¶ÔÏóºó¶¼»áÂíÉϵ÷ÓÃopen() ·½·¨£¬Õâʱºò״̬¾Í±ä³É1ÁË£¬µ±È»³ý·ÇÄãÒªÅж϶ÔÏóÊÇ·ñÒѾ­±» abort() È¡Ïû£¬¿ÉÊÇÕâÑùµÄÇé¿öÒÀÈ»ºÜÉÙ¡£´ó²¿·ÖÇé¿öÏÂÅжÏÊDz»ÊÇ4£¨ÒѾ­½ÓÊÜÍê³É£©Õâ¸ö״̬¾Í¹»ÁË¡£
ºÃÁË£¬Ã÷°×ÁËreadyStateÓÐ5ÖÖ״̬ÁË£¬ÄÇ´¦Àí·µ»Ø½á¹û¾ÍÊÇ¿´×´Ì¬±ä¸üµ½²»Í¬µÄ״̬ÎÒÃÇ×ö²»Í¬µÄ´¦Àí¾Í¿ÉÒÔÁË£¬Ôõô¸æËßXMLHttpRequest ¶ÔÏó״̬±ä»¯Ê±ÈÃË­À´´¦ÀíÕâ¸ö±ä»¯ÄØ¡£ÓÐÁ½ÖÖд·¨£¬Ò»ÖÖÊÇÓÃÄäÃû·½·¨£¬ÁíÒ»ÖÖÊÇÖ¸¶¨·½·¨£¬ÆäʵֻÊDz»Í¬µÄд·¢£¬×÷Óö¼Ò»Ñù£¬¿´Ï´úÂ룺

xmlhttp.onReadyStateChange = function (){
 
//´¦Àí״̬±ä»¯µÄ´úÂë
}
//»òÕß
xmlhttp.onReadyStateChange = getResult;
function getResult(){
 
///´¦Àí״̬±ä»¯µÄ´úÂë
}
//˳±ã˵һÏ£¬¾ä±úµÄÃû³Æ±È½Ï³¤£¬¿ÉÒÔÕâÑù¼ÇÒä on ReadyState Change ±íʾÔÚ¶Áȡ״̬¸Ä±äʱ

ÇëÇó·¢ËÍÁË£¬Ò²Ö¸¶¨´¦Àí·½·¨ÁË£¬Ôõô»ñÈ¡·µ»ØµÄÄÚÈÝÄØ£¬ÓÐresponseTextºÍresponseXMLÁ½¸öÊôÐԿɹ©Ê¹Óã¬responseXMLÊÇ·µ»Ø¶ÔÏó£¬ÐèÒªÔÙ½âÎö£¬ºóÃæÔÙ˵£¬ÕâÀïÏÈÓÃresponseText£¬¿´¿´·µ»Øʲô¡£

alert(xmlhttp.responseText); //¿´¿´ÊDz»ÊÇ·µ»ØÁËÊ×Ò³µÄHTML´úÂë°¡¡£ÊÇÄã¾Í³É¹¦ÁË¡£

Õû¸ö¹ý³ÌÊÇ£º´´½¨XMLHttpRequest ¶ÔÏó -> Ö¸¶¨·¢Ë͵ØÖ·¼°·¢ËÍ·½·¨ -> ·¢ËÍÇëÇó -> Ö¸¶¨´¦Àí·½·¨²¢´¦Àí·µ»Ø½á¹û¡£µ«ÊÇÐèҪעÒ⣬ÎÒÃÇÕý³£µÄ˼·Àí½âÊÇÕâÑùµÄ£¬¿ÉÊÇonreadystatechangeʼþ¾ä±úÖ¸¶¨´¦Àí·½·¨ÐèÒªÔÚ·¢ËÍ֮ǰ¾ÍÖ¸¶¨ºÃ£¬·ñÔòÎÞ·¨´¦Àí״̬±ä»¯Ê¼þ¡£

ËùÒÔÎÒÃÇÓ¦¸Ã°´ÕÕÏÂÃæµÄÁ÷³ÌÀ´¼ÇÒ䣺´´½¨XMLHttpRequest ¶ÔÏó -> Ö¸¶¨·¢Ë͵ØÖ·¼°·¢ËÍ·½·¨ -> Ö¸¶¨×´Ì¬±ä»¯´¦Àí·½·¨ -> ·¢ËÍÇëÇó£¬ÇëÇó·¢Ëͺó״̬±ä»¯Á˾ͻá×Ô¶¯µ÷ÓÃÖ¸¶¨µÄ´¦Àí·½·¨¡£
ºÃÁË£¬¿´¿´Íê³ÉµÄ´úÂë°É¡£

 

Íê³ÉµÄ´úÂë

¿´ËÆÒ»Çж¼OKÁË£¬¿ÉÊÇÓÐûÓÐÏë¹ý£¬Èç¹ûHTML´úÂëÔÚÍøÂç´«Êä¹ý³ÌÖгö´íÁË£¬»òÕßÎÒÃÇÖ¸¶¨µÄµØַʧЧ»áÔõôÑùÄØ¡£Õâ¸öʱºò¾ÍÐèÒªÓõ½statusÊôÐÔ£¬¼´ÓÉ·þÎñÆ÷·µ»ØµÄ HTTP ״̬´úÂë¡£ xmlhttp.status µÈÓÚ200ʱ±íʾ´«Êä¹ý³ÌÍêÕûûÓдíÎó¡£¾ßÌåµÄHTTP״̬´úÂëʲôÒâ˼¿ÉÒÔµ½W3C×éÖ¯ÍøÕ¾ÉÏ¿´¿´£¬µØÖ·http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6.1.1 ¡£
°ÑgetResult()·½·¨Ð´³ÉÏÂÃæÕâÑùÎÒ¾õµÄ¾ÍÕæµÄOKÁË¡£

 function getResult(){
  
if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
   alert(xmlhttp.responseText);
  }
 }

ºÃÁË£¬Ò»¸ö±¾À´Í¦¼òµ¥µÄ¶«Î÷£¬±»ÎÒдµÄÕâô¶à£¬ºÃÏóºÜÂÞà¡£²»¹ýÎÒ¾õµÄ±à³Ì¶Ô»ù´¡ÄÚÈݵÄÀí½âºÜÖØÒª£¬ÏÖÔںܶàʱºò¿ª·¢AJAXµÄ³ÌÐò¶¼Ê¹ÓúܶàJSµÄ¿â£¬²»ÐèÒªÖ±½Ó±àдÕâô»ù´¡µÄ´úÂë¡£ÈçʹÓÃÖøÃûµÄjQuery£¬µ«ÊÇÈç¹ûÎÒÃǶԻù´¡µÄ¶«Î÷ÓкܺõÄÀí½â£¬ÄÇÕâЩ¿â±¨¸æ´íÎ󣬻òÕß³öÏÖÎÊÌâÎÒÃÇ¿ÉÒԺܺúܿìµÄÖªµÀ´íÔÚÄÄÀ¸ü¿ìµÄ×ö³ö¸Ä±äʹ³ÌÐòÕý³£ÔËÐС£

(ÔðÈα༭£ºadmin)
Ö¯ÃζþάÂëÉú³ÉÆ÷
¶¥Ò»ÏÂ
(0)
0%
²ÈÒ»ÏÂ
(0)
0%
------·Ö¸ôÏß----------------------------
·¢±íÆÀÂÛ
Çë×Ô¾õ×ñÊØ»¥ÁªÍøÏà¹ØµÄÕþ²ß·¨¹æ£¬ÑϽû·¢²¼É«Çé¡¢±©Á¦¡¢·´¶¯µÄÑÔÂÛ¡£
ÆÀ¼Û:
񡀂:
Óû§Ãû: ÑéÖ¤Âë:µã»÷ÎÒ¸ü»»Í¼Æ¬