AJAX - Ïò·þÎñÆ÷·¢ËÍÇëÇó
XMLHttpRequest ¶ÔÏóÓÃÓÚͬ·þÎñÆ÷½»»»Êý¾Ý¡£
Ïò·þÎñÆ÷·¢ËÍÇëÇó
ÈçÐèÏò·þÎñÆ÷·¢ËÍÇëÇó£¬ÎÒÃÇʹÓà XMLHttpRequest ¶ÔÏóµÄ open() ºÍ send() ·½·¨£º
xhttp.open("GET", "ajax_info.txt", true); xhttp.send();
·½·¨ | ÃèÊö |
---|---|
open(method, url, async) |
¹æ¶¨ÇëÇóµÄÀàÐÍ
|
send() | Ïò·þÎñÆ÷·¢ËÍÇëÇó£¨ÓÃÓÚ GET£© |
send(string) | Ïò·þÎñÆ÷·¢ËÍÇëÇó£¨ÓÃÓÚ POST£© |
GET »¹ÊÇ POST£¿
GET ±È POST ¸ü¼òµ¥¸ü¿ì£¬¿ÉÓÃÓÚ´ó¶àÊýÇé¿öÏ¡£
²»¹ý£¬ÇëÔÚÒÔÏÂÇé¿öʼÖÕʹÓà POST£º
- »º´æÎļþ²»ÊÇÑ¡Ï¸üзþÎñÆ÷ÉϵÄÎļþ»òÊý¾Ý¿â£©
- Ïò·þÎñÆ÷·¢ËÍ´óÁ¿Êý¾Ý£¨POST ÎÞ´óСÏÞÖÆ£©
- ·¢ËÍÓû§ÊäÈ루¿É°üº¬Î´Öª×Ö·û£©£¬POST ±È GET ¸üÇ¿´ó¸ü°²È«
GET ÇëÇó
Ò»Ìõ¼òµ¥µÄ GET ÇëÇó£º
ʵÀý
xhttp.open("GET", "demo_get.asp", true); xhttp.send();
ÔÚÉÏÃæµÄÀý×ÓÖУ¬Äú¿ÉÄÜ»á»ñµÃÒ»¸ö»º´æµÄ½á¹û¡£ÎªÁ˱ÜÃâ´ËÇé¿ö£¬ÇëÏò URL Ìí¼ÓÒ»¸öΨһµÄ ID£º
ʵÀý
xhttp.open("GET", "demo_get.asp?t=" + Math.random(), true); xhttp.send();
Èç¹ûÄúÐèÒªÓà GET ·½·¨À´·¢ËÍÐÅÏ¢£¬ÇëÏò URL Ìí¼ÓÕâЩÐÅÏ¢£º
ʵÀý
xhttp.open("GET", "demo_get2.asp?fname=Bill&lname=Gates", true); xhttp.send();
POST ÇëÇó
Ò»Ìõ¼òµ¥µÄ POST ÇëÇó£º
ʵÀý
xhttp.open("POST", "demo_post.asp", true); xhttp.send();
ÈçÐèÏñ HTML ±íµ¥ÄÇÑù POST Êý¾Ý£¬Çëͨ¹ý setRequestHeader() Ìí¼ÓÒ»¸ö HTTP Í·²¿¡£ÇëÔÚ send() ·½·¨Öй涨ÄúÐèÒª·¢Ë͵ÄÊý¾Ý£º
ʵÀý
xhttp.open("POST", "ajax_test.asp", true); xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xhttp.send("fname=Bill&lname=Gates");
·½·¨ | ÃèÊö |
---|---|
setRequestHeader(header, value) |
ÏòÇëÇóÌí¼Ó HTTP Í·²¿
|
url - ·þÎñÆ÷ÉϵÄÎļþ
open() ·½·¨µÄ url ²ÎÊý£¬ÊÇ·þÎñÆ÷ÉÏÎļþµÄµØÖ·£º
xhttp.open("GET", "ajax_test.asp", true);
¸ÃÎļþ¿ÉÒÔÊÇÈκÎÀàÐ͵ÄÎļþ£¬Èç .txt ºÍ .xml£¬»ò·þÎñÆ÷½Å±¾Îļþ£¬Èç .asp ºÍ .php£¨ËüÃÇ¿ÉÒÔÔÚ·¢ËÍ»ØÏìӦ֮ǰÔÚ·þÎñÆ÷Ö´ÐвÙ×÷£©¡£
Òì²½ - ture »¹ÊÇ false£¿
ÈçÐèÒì²½·¢ËÍÇëÇó£¬open() ·½·¨µÄ async ²ÎÊý±ØÐëÉèÖÃΪ true£º
xhttp.open("GET", "ajax_test.asp", true);
·¢ËÍÒì²½ÇëÇó¶Ô web ¿ª·¢ÈËÔ±À´ËµÊÇÒ»¸ö¾Þ´óµÄ½ø²½¡£·þÎñÆ÷ÉÏÖ´ÐеÄÐí¶àÈÎÎñ¶¼·Ç³£ºÄʱ¡£ÔÚ AJAX ֮ǰ£¬´Ë²Ù×÷¿ÉÄܻᵼÖÂÓ¦ÓóÌÐò¹ÒÆð»òÍ£Ö¹¡£
ͨ¹ýÒì²½·¢ËÍ£¬JavaScript ²»±ØµÈ´ý·þÎñÆ÷ÏìÓ¦£¬¶øÊÇ¿ÉÒÔ£º
- Ôڵȴý·þÎñÆ÷ÏìӦʱִÐÐÆäËû½Å±¾
- µ±ÏìÓ¦¾ÍÐ÷ʱ´¦ÀíÏìÓ¦
onreadystatechange ÊôÐÔ
ͨ¹ý XMLHttpRequest ¶ÔÏó£¬Äú¿ÉÒÔ¶¨Òåµ±ÇëÇó½ÓÊÕµ½Ó¦´ðʱËùÖ´Ðеĺ¯Êý¡£
Õâ¸öº¯ÊýÊÇÔÚ XMLHttpResponse ¶ÔÏóµÄ onreadystatechange ÊôÐÔÖж¨ÒåµÄ£º
ʵÀý
xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { document.getElementById("demo").innerHTML = this.responseText; } }; xhttp.open("GET", "ajax_info.txt", true); xhttp.send();
Äú½«ÔÚÉÔºóµÄÕ½Úѧµ½¸ü¶àÓÐ¹Ø onreadystatechange µÄ֪ʶ¡£
ͬ²½ÇëÇó
ÈçÐèÖ´ÐÐͬ²½µÄÇëÇó£¬Çë°Ñ open() ·½·¨ÖеĵÚÈý¸ö²ÎÊýÉèÖÃΪ false£º
xhttp.open("GET", "ajax_info.txt", false);
ÓÐʱ async = false ÓÃÓÚ¿ìËÙ²âÊÔ¡£ÄãÒ²»áÔÚ¸üÀ쵀 JavaScript ´úÂëÖп´µ½Í¬²½ÇëÇó¡£
ÓÉÓÚ´úÂ뽫µÈ´ý·þÎñÆ÷Íê³É£¬ËùÒÔ²»ÐèÒª onreadystatechange º¯Êý£º
ʵÀý
xhttp.open("GET", "ajax_info.txt", false); xhttp.send(); document.getElementById("demo").innerHTML = xhttp.responseText;
ÎÒÃDz»ÍƼöͬ²½µÄ XMLHttpRequest (async = false)£¬ÒòΪ JavaScript ½«Í£Ö¹Ö´ÐÐÖ±µ½·þÎñÆ÷ÏìÓ¦¾ÍÐ÷¡£Èç¹û·þÎñÆ÷·±Ã¦»ò»ºÂý£¬Ó¦ÓóÌÐò½«¹ÒÆð»òÍ£Ö¹¡£
ͬ²½ XMLHttpRequest ÕýÔÚ´Ó Web ±ê×¼ÖÐÒÆ³ý£¬µ«ÊÇÕâ¸ö¹ý³Ì¿ÉÄÜÐèÒªºÜ¶àÄê¡£
ÏÖ´ú¿ª·¢¹¤¾ß±»¹ÄÀø¶ÔʹÓÃͬ²½ÇëÇó×ö³ö¾¯¸æ£¬²¢ÇÒµ±ÕâÖÖÇé¿ö·¢Éúʱ£¬¿ÉÄÜ»áÅ׳ö InvalidAccessError Òì³£¡£