jQuery.post(), Ajax HTTP POST ¹æ½Ä ¿äû |
|
|
 |
8³â Àü |
jQuery.post( url [, data] [, success(data, textStatus, jqXHR)] [, dataType] )
°³¿ä : HTTP POST ¹æ½Ä ¿äûÀ» ÅëÇØ ¼¹ö·ÎºÎÅÍ µ¥ÀÌÅ͸¦ ¹Þ½À´Ï´Ù.
jQuery.post( url [, data] [, success(data, textStatus, jqXHR)] [, dataType] )
url Á¤º¸¸¦ ¿äûÇÒ URL
data ¼¹ö·Î º¸³¾ data
success(data, textStatus, jqXHR) ¿äûÀÌ ¼º°øÇÏ¸é ½ÇÇàµÉ Äݹé ÇÔ¼ö
dataType ¼¹ö¿¡¼ ¹ÝȯµÇ´Â µ¥ÀÌÅÍÀÇ Å¸ÀÔ. Default: Áö´ÉÇü ÃßÃø (xml, json, script, html)
ÀÌ ÇÔ¼öÀÇ °¡Àå °£´ÜÇÑ »ç¿ë¹ýÀº ¾Æ·¡¿Í °°½À´Ï´Ù.
$.ajax({
type: 'POST',
url: url,
data: data,
success: success,
dataType: dataType
});
success Äݹé ÇÔ¼ö´Â ÀÀ´ä¹ÞÀº MIME ŸÀÔº°·Î XML, text ¹®ÀÚ¿, JSON °´Ã¼ µî°ú °°Àº µ¥ÀÌÅÍ°¡ Àü´ÞµÇ¾î Áý´Ï´Ù. ¶ÇÇÑ ÀÀ´ä»óÅ°ªµµ ¹®ÀÚ¿·Î ³Ñ¾î¿É´Ï´Ù.
jQuery 1.5ºÎÅÍ success Äݹé ÇÔ¼ö´Â "jqXHR" °´Ã¼µµ ¹ÞÀ» ¼ö ÀÖ°Ô µÇ¾ú½À´Ï´Ù.(jQuery 1.4±îÁö´Â XMLHttpRequest °´Ã¼¸¦ ¹Þ¾ÒÀ½). ÇÏÁö¸¸, JSONP ³ª Å©·Î½ºµµ¸ÞÀÎ(cross-domain)ÀÇ GET ¿äû ½Ã¿¡´Â XHRÀ» »ç¿ëÇÏÁö ¸øÇÕ´Ï´Ù. ÀÌ·¯ÇÑ °æ¿ì¿¡¼´Â (j)XHR ³ª textStatus ÀÎÀÚ´Â success Äݹé ÇÔ¼ö¿¡¼ "undefined"À¸·Î Àνĵ˴ϴÙ.
´ëºÎºÐ ¼º°ø ½ÃÀÇ Çڵ鷯¸¦ ÁöÁ¤ÇÏ¿© »ç¿ëÇÏ°Ô µË´Ï´Ù.
$.post('ajax/test.html', function(data) {
$('.result').html(data);
});
À§ ¿¹Á¦´Â HTMLÀ» ¹Þ¾Æ¼ ó¸®ÇÏ°í ÆäÀÌÁö¿¡ Áý¾î³Ö´Â °ÍÀÔ´Ï´Ù.
POST ¹æ½ÄÀº Àý´ë ij½Ã µ¥ÀÌÅ͸¦ »ç¿ëÇÏÁö ¾Ê½À´Ï´Ù. ±×·¡¼ jQuery.ajaxSetup() ¿¡¼ ¼³Á¤ÇÑcache ¿Í ifModified ¿É¼ÇÀº ÀÌ ¹æ½ÄÀÇ ¿äû¿¡ ¿µÇâÀ» ÁÖÁö ¾Ê½À´Ï´Ù.
The jqXHR Object
jQuery 1.5ºÎÅÍ, ¸ðµç jQueryÀÇ Ajax ÇÔ¼ö´Â XMLHTTPRequest °´Ã¼ÀÇ »óÀ§ÁýÇÕÀ» ¹Ýȯ¹ÞÀ» ¼ö ÀÖ°Ô µÇ¾ú½À´Ï´Ù. ÀÌ°ÍÀ» jQuery XHR °´Ã¼ ¶Ç´Â "jqXHR" ¶ó°í Çϸç, $.get()À» »ç¿ëÇÏ¸é ¹Ýȯ¹ÞÀ» ¼ö ÀÖµµ·Ï ±¸¼ºµÇ¾ú½À´Ï´Ù. ÀÌ·± ¾à¼ÓµÈ ÀÎÅÍÆäÀ̽º ±¸Á¶´Â, ¸ðµç ¼Ó¼ºµé, ÇÔ¼öµé ±×¸®°í ¾à¼ÓµÈ µ¿ÀÛµéÀ» Æ÷ÇÔÇÕ´Ï´Ù.(Deferred object ¸¦ Âü°íÇϼ¼¿ä). ÆíÀǼº°ú Áö¼Ó¼ºÀ» À§ÇØ Äݹé¸íÀ» $.ajax()¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ°í, ¿©±â¿¡¼ .error(), .success(), .complete() ÇÔ¼öµéÀ» ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·± ÇÔ¼öµéÀº ¸ðµÎ µ¿ÀÏÇÑ À̸§À¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Â ÀÎÀÚµéÀ» ¹Ýȯ¹Þ¾Æ ó¸®ÇÒ ¼ö ÀÖ½À´Ï´Ù.
¶ÇÇÑ, jQuery 1.5ºÎÅÍ $.get()À» Æ÷ÇÔÇÏ¿© üÀÎ ÇüÅ·Π¿«¾îÁø ¿©·¯°³ÀÇ .success(), .complete(), .error() µéÀ» ´ÜÀÏ ¿äû¿¡ »ç¿ëÇÒ ¼ö ÀÖ°Ô µÇ¾ú°í, ¿äûÀÌ ¿Ï·áµÈ ÈÄ¿¡µµ À̵é ÄݹéÀ» ÀúÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸¸ÀÏ ¿äûÀÌ ÀÌ¹Ì ¿Ï·áµÇ¾ú´Ù ÇÏ´õ¶óµµ, ´Ù½Ã ºÒ·¯¼ ¾µ ¼ö ÀÖ½À´Ï´Ù.
// ¿äûÀÌ ¿Ï·áµÈ ÈÄ¿¡ Çڵ鷯¸¦ ÇÒ´çÇÏ°í,
// ÀÌ ¿äû¿¡ ´ëÇÑ jqxhr °´Ã¼´Â ±â¾ïµÇ¾î Áý´Ï´Ù.
var jqxhr = $.post("example.php", function() {
alert("success");
})
.success(function() { alert("second success"); })
.error(function() { alert("error"); })
.complete(function() { alert("complete"); });
// ÀÌ ºÎºÐ¿¡¼ ´Ù¸¥ ÀÛ¾÷À» ¼öÇàÇÑ ÈÄ¿¡µµ ...
// ¶Ç ´Ù¸¥ ¿Ï·á¿¡ ´ëÇÑ ÇÔ¼ö¸¦ Àû¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
jqxhr.complete(function(){ alert("second complete"); });
Additional Notes: ºê¶ó¿ìÀú º¸¾È Á¤Ã¥¿¡ ÀÇ°ÅÇÏ¿© ´ëºÎºÐÀÇ "Ajax" »ç¿ë ½Ã same origin policy¸¦ Àû¿ë¹Þ°Ô µË´Ï´Ù. Ajax ¿äûÀº ´Ù¸¥ µµ¸ÞÀÎ, ´Ù¸¥ ¼ºêµµ¸ÞÀÎ, ´Ù¸¥ ÇÁ·ÎÅäÄÝ °£¿¡´Â ¼º°øµÇÁö ¸øÇÕ´Ï´Ù. ¸¸ÀÏjQuery.get()¸¦ ¼öÇàÇϸé error Äڵ尡 ³Ñ¾î¿À°í, .ajaxError() ÇÔ¼ö¿¡¼ ´Ù·çÁö ¾Ê´Â ÇÑ µû·Î 󸮵ÇÁö ¾Ê½À´Ï´Ù. Alternatively, as of jQuery 1.5 ºÎÅÍ´Â, jqXHR °´Ã¼¸¦ °¡Áö°í .error() ÇÔ¼ö¿¡¼ ´Ù·ê ¼öµµ ÀÖ½À´Ï´Ù. Script ¿Í JSONP ¿äûÀº same origin policy restrictions ÀÌ Àû¿ëµÇÁö ¾Ê½À´Ï´Ù.
¿¹ Á¦ test.php ¿¡ ¿äûÇÏÁö¸¸, ¹Ýȯ °á°ú´Â ¹«½ÃÇÕ´Ï´Ù.
$.post("test.php");
¿¹ Á¦ µ¥ÀÌÅ͸¦ Æ÷ÇÔÇÏ¿© test.php ¿¡ ¿äûÇÕ´Ï´Ù.(´Ü, ¹Ýȯ °á°ú´Â ¹«½ÃÇÕ´Ï´Ù.)
$.post("test.php", { name: "John", time: "2pm" } );
¿¹ Á¦ ¹è¿ ÇüÅÂÀÇ µ¥ÀÌÅ͸¦ ¼¹ö·Î º¸³À´Ï´Ù.(¿©ÀüÈ÷ ¹Ýȯ °á°ú¿¡´Â ½Å°æ¾²Áö ¾Ê½À´Ï´Ù.)
$.post("test.php", { 'choices[]': ["Jon", "Susan"] });
¿¹ Á¦ Æû µ¥ÀÌÅ͸¦ º¸³À´Ï´Ù.
$.post("test.php", $("#testform").serialize());
¿¹ Á¦ test.php ÀÇ ¿äû °á°ú¸¦ ¾Ë¸²Ã¢À¸·Î º¸¿© ÁÝ´Ï´Ù.
$.post("test.php", function(data) {
alert("Data Loaded: " + data);
});
¿¹ Á¦ test.php¿¡ µ¥ÀÌÅ͸¦ º¸³»°í ¹ÝȯµÈ °á°ú¸¦ ¾Ë¸²Ã¢À¸·Î º¸¿© ÁÝ´Ï´Ù.
$.post("test.php", { name: "John", time: "2pm" },
function(data) {
alert("Data Loaded: " + data);
});
¿¹ Á¦ test.php¿¡ µ¥ÀÌÅ͸¦ º¸³»°í ¹ÝȯµÈ °á°ú¸¦ process() JavaScript ÇÔ¼ö·Î Àü´ÞÇÕ´Ï´Ù.
$.post("test.php", { name: "John", time: "2pm" },
function(data) {
process(data);
},
"xml"
);
¿¹ Á¦ test.php ÆäÀÌÁö°¡ json ÇüÅÂÀÇ µ¥ÀÌÅÍ (<?php echo json_encode(array("name"=>"John","time"=>"2pm")); ?>)¸¦ ¹ÝȯÇÏ¸é ±× µ¥ÀÌÅ͸¦ µð¹ö±×¸¦ À§ÇÑ Äֿܼ¡ »Ñ¸³´Ï´Ù.
$.post("test.php", { "func": "getNameAndTime" },
function(data){
console.log(data.name); // John
console.log(data.time); // 2pm
}, "json");
¿¹ Á¦
POST ¹æ½ÄÀ¸·Î Æû µ¥ÀÌÅ͸¦ Àü¼ÛÇÏ°í °á°ú¸¦ div ¿¡ Ç¥½ÃÇÕ´Ï´Ù.(ÀÌ ¿¹Á¦´Â ¿©±â¼ ÀÛµ¿ÇÏÁö ¾Ê½À´Ï´Ù.)
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<form action="/" id="searchForm">
<input type="text" name="s" placeholder="Search..." />
<input type="submit" value="Search" />
</form>
<!-- the result of the search will be rendered inside this div -->
<div id="result"></div>
<script>
/* attach a submit handler to the form */
$("#searchForm").submit(function(event) {
/* stop form from submitting normally */
event.preventDefault();
/* get some values from elements on the page: */
var $form = $( this ),
term = $form.find( 'input[name="s"]' ).val(),
url = $form.attr( 'action' );
/* Send the data using post and put the results in a div */
$.post( url, { s: term },
function( data ) {
var content = $( data ).find( '#content' );
$( "#result" ).empty().append( content );
}
);
});
</script>
</body>
</html>
jQuery.get() ÀÇ ½ÖµÕÀÌÀÔ´Ï´Ù. ´Ü, post()´Â ij½ÃµÈ Á¤º¸¸¦ Àý´ë »ç¿ëÇÏÁö ¾Ê´Â´Ù´Â Ä¿´Ù¶õ Â÷ÀÌÁ¡ÀÌ ÀÖ½À´Ï´Ù. ±¸ºÐÇؼ Àß »ç¿ëÇϽñ⠹ٶø´Ï´Ù. |
|
̵̧ : 361 |
̵̧
¸ñ·Ï
|
|