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 | لازمی، اس کا مقصد یہ سروے کو کس 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 片段,并插入页面中。
通过 POST 读取的页面不被缓存,因此 jQuery.ajaxSetup() 中的 cache 和 ifModified 选项不会影响这些请求。
注释:由于浏览器安全方面的限制,大多数 "Ajax" 请求遵守同源策略;请求无法从不同的域、子域或协议成功地取回数据。
注释:如果由 jQuery.post() 发起的请求返回错误代码,那么不会有任何提示,除非脚本已调用了全局的 .ajaxError() 方法。或者对于 jQuery 1.5,jQuery.post() 返回的 jqXHR 对象的 .error() 方法也可以用于错误处理。
jqXHR کا معاملہ
jQuery 1.5 کے لئے، تمام jQuery کی Ajax طریقوں نے XMLHTTPRequest کا سارے متعلق فونکشنز فراہم کرتی ہیں، جو $.post() سے واپس نکالے جاتے ہیں یا "jqXHR,"، یہ کانوینشن کا انٹر فیس کا سارے متعلق فونکشنز، اپنی خاصیتوں، طریقوں اور کانوینشن کی رفتاروں کو فراہم کرتی ہیں۔ $.ajax() کال بیک فونکشن کے نام کی آسانی اور ایک سارے کانوینشن کا فکر رکھتے ہوئے، یہ .error(), .success() اور .complete() طریقوں کو فراہم کرتی ہے۔ یہ طریقوں درخواست کی جگہ سے متعلق فونکشن کو استعمال کرتے ہیں، جو $.ajax() کال بیک فونکشن کا ساتھ متعلق فونکشن کو استعمال کرتا ہے، جو اسی نام کا $.ajax() کال بیک فونکشن کا ساتھ متعلق فونکشن کو استعمال کرتا ہے۔
jQuery 1.5 میں کانوینشن کا انٹر فیس بھی jQuery کی Ajax کی طریقوں، از جمله $.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 ذخیره کنید و سپس توسط تابع JavaScript process() پردازش کنید:
$.post("test.php", { name: "Bill", time: "2pm" }, function(data){ process(data); }, "xml");
مثال 7
محتوای json فرمت شدهای که از صفحه test.php بازمیگردد را دریافت کنید:
$.post("test.php", { "func": "getNameAndTime" }, function(data){ alert(data.name); // Bill console.log(data.time); // 2pm }, "json");