jQuery ajax - post() ਮੇਥਡ
ਮਾਮਲਾ
test.php ਵੈੱਬਸਾਈਟ ਨੂੰ ਬੇਨਤੀ ਕਰੋ, ਪ੍ਰਤੀਕਿਰਿਆ ਨੂੰ ਨਾ ਧਿਆਨ ਵਿੱਚ ਰੱਖੋ:
$.post("test.php");
TIY ਮਾਮਲਾ
AJAX POST ਰਿਕਾਰਡ ਵਿੱਚੋਂ div ਐਲੀਮੈਂਟ ਦੇ ਟੈਕਸਟ ਨੂੰ ਬਦਲਣਾ:
$("input").keyup(function(){ txt=$("input").val(); $.post("demo_ajax_gethint.asp",{suggest:txt},function(result){ $("span").html(result); }); });
ਵਿਆਖਿਆ ਅਤੇ ਵਰਤੋਂ
post() ਮੇਥਡ ਵੱਲੋਂ HTTP POST ਰਿਕਾਰਡ ਵਿੱਚੋਂ ਸਰਵਰ ਤੋਂ ਡਾਟਾ ਲਿਆ ਜਾਂਦਾ ਹੈ。
ਸਿਧਾਂਤ
jQuery.post(url,data,success(data, textStatus, jqXHR),dataType)
ਪੈਰਾਮੀਟਰ | ਵਰਣਨ |
---|---|
url | ਲਾਜ਼ਮੀ। ਸਰਵਰ ਨੂੰ ਭੇਜਣ ਵਾਲੇ ਰੂਟ ਨਿਰਧਾਰਿਤ ਕਰਦਾ ਹੈ。 |
data | ਵਿਕਲਪਿਕ। ਮੈਪਿੰਗ ਜਾਂ ਸਟ੍ਰਿੰਗ ਮੁੱਲ। ਸਰਵਰ ਨੂੰ ਭੇਜੇ ਜਾਣ ਵਾਲੇ ਅੰਕੜਿਆਂ ਦੀ ਨਿਰਧਾਰਿਤ ਕਰਦਾ ਹੈ。 |
success(data, textStatus, jqXHR) | ਵਿਕਲਪਿਕ। ਸਫਲਤਾ ਨਾਲ ਫੰਕਸ਼ਨ ਚਲਾਉਣ ਵਾਲਾ ਕਾਲਬੈਕ ਫੰਕਸ਼ਨ ਹੈ。 |
dataType |
ਵਿਕਲਪਿਕ। ਅਨੁਮਾਨਿਤ ਸਰਵਰ ਪ੍ਰਤੀਕਿਰਿਆ ਦਾਤਾ ਟਾਈਪ ਨਿਰਧਾਰਿਤ ਕਰਦਾ ਹੈ。 ਮੂਲਰੂਪ ਵਿੱਚ ਇੱਕੋ ਜਿਹਾ ਹੈ (xml, json, script ਜਾਂ html) ਦੀ ਜਾਂਚ ਕਰਦਾ ਹੈ。 |
ਵਿਸਤ੍ਰਿਤ ਵਰਣਨ
ਇਹ ਫੰਕਸ਼ਨ Ajax ਫੰਕਸ਼ਨ ਦੀ ਸ਼ਾਰਟਕੈਟ ਹੈ, ਇਹ:
$.ajax({ type: 'POST', url: url, data: data, success: success, dataType: dataType });
ਪ੍ਰਤੀਕਿਰਿਆ ਦੇ ਵੱਖ-ਵੱਖ MIME ਟਾਈਪ ਅਨੁਸਾਰ success ਰਿਟਰਨ ਫੰਕਸ਼ਨ ਵਿੱਚ ਪਸਾਰ ਕੀਤੇ ਗਏ ਦਾਤਾ ਵੱਖ-ਵੱਖ ਹੁੰਦੇ ਹਨ, ਇਹ ਦਾਤਾ XML ਮੂਲ ਈਲੈਕਟਰੌਨ ਮੈਕਸਨ, ਟੈਕਸਟ ਸਟ੍ਰਿੰਗ, JavaScript ਫਾਈਲ ਜਾਂ JSON ਆਬਜੈਕਟ ਹੋ ਸਕਦੇ ਹਨ। ਵੀ success ਰਿਟਰਨ ਫੰਕਸ਼ਨ ਵਿੱਚ ਪ੍ਰਤੀਕਿਰਿਆ ਦੇ ਟੈਕਸਟ ਸਟੇਟ ਨੂੰ ਪਸਾਰ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ。
jQuery 1.5 ਲਈ ਵੀ success ਰਿਟਰਨ ਫੰਕਸ਼ਨ ਵਿੱਚ ਪਸਾਰ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ jqXHR ਆਬਜੈਕਟ(jQuery 1.4 ਵਿੱਚ ਪਸਾਰ ਕੀਤਾ ਗਿਆ XMLHttpRequest ਆਬਜੈਕਟ ਹੈ)。
ਮੋਟਾ ਤੌਰ 'ਤੇ ਇੱਕ success ਫੰਕਸ਼ਨ ਨਿਰਧਾਰਿਤ ਕਰਦਾ ਹੈ:
$.post("ajax/test.html", function(data) { $(".result").html(data); });
ਇਸ ਉਦਾਹਰਣ ਵਿੱਚ ਮੰਗੇ ਗਏ HTML ਸ਼ੈਕਟ ਪੜ੍ਹਿਆ ਜਾਂਦਾ ਹੈ ਅਤੇ ਪੰਨੇ ਵਿੱਚ ਜੋੜਿਆ ਜਾਂਦਾ ਹੈ。
ਪੋਸਟ ਰਾਹੀਂ ਪੜ੍ਹੇ ਗਏ ਪੰਨੇ ਨਹੀਂ ਸਟੋਰ ਕੀਤੇ ਜਾਂਦੇ ਹਨ, ਇਸ ਲਈ jQuery.ajaxSetup() ਵਿੱਚ cache ਅਤੇ ifModified ਚੋਣ ਇਨ੍ਹਾਂ ਮੰਗਾਂ 'ਤੇ ਪ੍ਰਭਾਵ ਨਹੀਂ ਪਾਉਂਦੀਆਂ ਹਨ。
ਟਿੱਪਣੀ:ਬਰਾਉਜ਼ਰ ਸੁਰੱਖਿਆ ਦੇ ਸੀਮਾਂ ਦੇ ਕਾਰਣ, ਮੱਧਮ "Ajax" ਮੰਗ ਸ਼ਾਮਲ ਹੈ ਅਤੇ ਅਲੱਗ ਦੋਹਾਂ ਡੋਮੇਨ, ਉਪ-ਡੋਮੇਨ ਜਾਂ ਪ੍ਰੋਟੋਕੋਲ ਤੋਂ ਪ੍ਰਾਪਤ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ。
ਟਿੱਪਣੀ:ਜੇਕੇਐੱਮਜੇ.post() ਵਲੋਂ ਸ਼ੁਰੂ ਕੀਤੇ ਗਏ ਕਿਸੇ ਮੰਗ ਦੇ ਮੁੱਕਦੇ ਹੋਣ 'ਤੇ ਗਲਤੀ ਕੋਡ ਬਾਰੇ ਕੋਈ ਸੁਝਾਅ ਨਹੀਂ ਦਿੱਤਾ ਜਾਵੇਗਾ, ਹਰ ਕਿਸੇ ਸਕ੍ਰਿਪਟ ਨੇ ਗਲਤੀ ਨਿਪਟਾਰੇ ਲਈ ਗਲੋਬਲ ਕੀਤਾ ਹੋਵੇ ਤਾਂ ਹੀ。 .ajaxError() ਮੈਥਡਜਾਂ ਜੇਕੇਐੱਮਜੇ 1.5 ਵਿੱਚ, jQuery.post() ਵਲੋਂ ਪ੍ਰਾਪਤ ਜੇਕੇਐੱਮਜੇ jqXHR ਆਬਜੈਕਟ ਦੀ .error() ਮੈਥਡ ਵੀ ਗਲਤੀ ਨਿਪਟਾਰੇ ਲਈ ਵਰਤੀ ਜਾ ਸਕਦੀ ਹੈ。
jqXHR ਆਬਜੈਕਟ
ਜਿਵੇਂ ਕਿ jQuery 1.5 ਵਿੱਚ, ਸਾਰੇ ਜੇਕੇਐੱਮਜੇ ਏਜ਼ੈਕਸ ਮੈਥਡ ਨੂੰ XMLHTTPRequest ਆਬਜੈਕਟ ਦਾ ਉਤਪਾਦ ਦਿੰਦੇ ਹਨ। $.post() ਵਲੋਂ ਪ੍ਰਾਪਤ ਜੇਕੇਐੱਮਜੇ XHR ਆਬਜੈਕਟ ਜਾਂ "jqXHR," ਨਿਯਮਤ ਇੰਟਰਫੇਸ ਨੂੰ ਲਾਗੂ ਕਰਦੇ ਹਨ, ਜਿਸ ਵਿੱਚ ਸਾਰੇ ਅਸੰਗਤੀਆਂ, ਮੈਥਡ ਅਤੇ ਨਿਯਮਤ ਵਿਵਹਾਰ ਨੂੰ ਪ੍ਰਦਾਨ ਕਰਦੇ ਹਨ। ਇਸ ਕਾਰਨ, $.ajax() ਕੰਬੇਕਾਰ ਫੰਕਸ਼ਨ ਦਾ ਨਾਮ ਸਹੂਲਤ ਅਤੇ ਨਿਯਮਤਤਾ ਦੇ ਵਿਚਾਰ ਦੇ ਹਵਾਲੇ ਨਾਲ, ਇਹ .error(), .success() ਅਤੇ .complete() ਮੈਥਡ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ। ਇਹ ਮੈਥਡ ਜੋੜੇ ਹੋਏ $.ajax() ਕੰਬੇਕਾਰ ਫੰਕਸ਼ਨ ਦੇ ਸਮਾਨ ਪੈਰਾਮੀਟਰਾਂ ਨਾਲ ਚਲਾਏ ਜਾਂਦੇ ਹਨ, ਜਿਸ ਵਿੱਚ ਸਮਾਨ ਨਾਮ ਦੇ $.ajax() ਕੰਬੇਕਾਰ ਫੰਕਸ਼ਨ ਨੂੰ ਚਲਾਇਆ ਜਾਂਦਾ ਹੈ।
jQuery 1.5 ਵਿੱਚ ਨਿਯਮਤ ਇੰਟਰਫੇਸ ਜੇਕੇਐੱਮਜੇ ਦੇ ਏਜ਼ੈਕਸ ਮੈਥਡ ਨੂੰ ਜੋੜਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਜਿਸ ਵਿੱਚ $.post() ਵੀ ਸ਼ਾਮਲ ਹੈ, ਅਤੇ ਮੈਨੂੰ ਇੱਕ ਜਿਸ ਤੋਂ ਬਹੁਤ ਕਰਕੇ ਕਈ .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"); });
ਹੋਰ ਉਦਾਹਰਣ
ਉਦਾਹਰਣ 1
test.php ਪੰਨੇ ਨੂੰ ਸੋਧੇ ਹੋਏ ਸਮੱਗਰੀ ਭੇਜੋ, ਅਤੇ ਅਨੁਸਾਰ ਅਤਿਰਿਕਤ ਸਮੱਗਰੀ ਭੇਜੋ (ਹੁਣ ਵੀ ਵਾਪਸ ਦਿੱਤੇ ਗਏ ਨਤੀਜੇ ਨੂੰ ਨਾਚੁੱਕ):
$.post("test.php", { name: "Bill", time: "2pm" } );
ਉਦਾਹਰਣ 2
ਸੇਵਰ ਨੂੰ ਡਾਟਾ ਗਰੁੱਪ ਭੇਜੋ (ਹੁਣ ਵੀ ਵਾਪਸ ਦਿੱਤੇ ਗਏ ਨਤੀਜੇ ਨੂੰ ਨਾਚੁੱਕ):
$.post("test.php", { 'choices[]': ["Jon", "Susan"] });
ਉਦਾਹਰਣ 3
ajax ਸਰਕਟ ਦੁਆਰਾ ਫਾਰਮ ਸਮੱਗਰੀ ਭੇਜੋ:
$.post("test.php", $("#testform").serialize());
ਉਦਾਹਰਣ 4
ਸੋਧੇ ਹੋਏ test.php ਪੰਨੇ ਦਾ ਨਤੀਜਾ ਨਿਕਾਲੋ (HTML ਜਾਂ XML, ਜਿਸ ਨੂੰ ਵਾਪਸ ਦਿੱਤਾ ਜਾਵੇ):
$.post("test.php", function(data){ alert("Data Loaded: " + data); });
ਉਦਾਹਰਣ 5
test.php ਪੰਨੇ ਨੂੰ ਸਮੱਗਰੀ ਭੇਜੋ, ਅਤੇ ਨਤੀਜੇ ਨੂੰ ਨਿਕਾਲੋ (HTML ਜਾਂ XML, ਜਿਸ ਨੂੰ ਵਾਪਸ ਦਿੱਤਾ ਜਾਵੇ):
$.post("test.php", { name: "Bill", time: "2pm" }, function(data){ alert("Data Loaded: " + data); });
ਉਦਾਹਰਣ 6
test.php ਪੰਨੇ ਦਾ ਸਮੱਗਰੀ ਹਾਸਲ ਕਰੋ, ਅਤੇ XMLHttpResponse ਅਬਜੈਕਟ ਵਜੋਂ ਸਟੋਰ ਕਰੋ, ਅਤੇ process() ਇਸ ਜਾਵਾਸਕ੍ਰਿਪਟ ਫੰਕਸਨ ਦੇ ਦੁਆਰਾ ਹੱਲ ਕਰੋ:
$.post("test.php", { name: "Bill", time: "2pm" }, function(data){ process(data); }, "xml");
ਉਦਾਹਰਣ 7
test.php ਪੰਨੇ ਵਾਪਸ ਦਿੱਤੇ json ਫਾਰਮੈਟ ਦੇ ਸਮੱਗਰੀ ਹਾਸਲ ਕਰਨਾ:
$.post("test.php", { "func": "getNameAndTime" }, function(data){ alert(data.name); // Bill console.log(data.time); // 2pm }, "json");