AJAX - Ïò·þÎñÆ÷·¢ËÍÇëÇó

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

Ïò·þÎñÆ÷·¢ËÍÇëÇó

ÈçÐèÏò·þÎñÆ÷·¢ËÍÇëÇó£¬ÎÒÃÇʹÓà XMLHttpRequest ¶ÔÏóµÄ open() ºÍ send() ·½·¨£º

xhttp.open("GET", "ajax_info.txt", true);
xhttp.send();
·½·¨ ÃèÊö
open(method, url, async)

¹æ¶¨ÇëÇóµÄÀàÐÍ

  • method£ºÇëÇóµÄÀàÐÍ£ºGET »¹ÊÇ POST
  • url£º·þÎñÆ÷£¨Îļþ£©Î»ÖÃ
  • async£ºtrue£¨Òì²½£©»ò false£¨Í¬²½£©
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 Í·²¿

  • header£º¹æ¶¨Í·²¿Ãû³Æ
  • value£º¹æ¶¨Í·²¿Öµ

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 Òì³£¡£

VUE