متدهای get و post
ارسال درخواستهای GET و POST به سرور و دریافت داده
متدهای $.get و $.post
دو متد سراسری برای ارسال درخواستهای HTTP:
// درخواست GET (گرفتن داده)
$.get(URL, callback);
// درخواست POST (ارسال داده)
$.post(URL, data, callback);
متد $.get()
برای دریافت داده از سرور (مثل جستوجو، گرفتن لیست...):
// دریافت ساده
$.get("api/users.php", function(data) {
console.log("داده دریافت شد");
});
// با پارامترهای query
$.get("api/search.php", { q: "کتاب", page: 1 }, function(data) {
$("#results").html(data);
});
متد $.post()
برای ارسال داده به سرور (مثل ثبتنام، لاگین، ذخیره فرم...):
// ارسال داده فرم
$.post("api/login.php", {
username: "ali",
password: "123456"
}, function(response) {
if (response.success) {
alert("خوش آمدید!");
} else {
alert("نام کاربری یا رمز اشتباه است");
}
});
دریافت JSON
رایجترین فرمت تبادل داده امروز JSON است:
// دریافت JSON از سرور
$.get("api/products.php", function(data) {
// data یک شیء جاوااسکریپت است
console.log(data.name);
console.log(data.price);
}, "json");
// پیمایش آرایه JSON
$.get("api/users.php", function(users) {
$.each(users, function(i, user) {
$("#userList").append("<li>" + user.name + "</li>");
});
}, "json");
مدیریت خطا
برای مدیریت خطا از متد .fail() استفاده کنید:
$.get("api/data.php")
.done(function(data) {
console.log("✅ موفق: ", data);
})
.fail(function(xhr) {
console.log("❌ خطا: ", xhr.status);
alert("خطا در ارتباط با سرور!");
})
.always(function() {
console.log("درخواست کامل شد (موفق یا ناموفق)");
});
مثال کاربردی: جستوجوی زنده
// جستوجو هنگام تایپ (با تأخیر)
var searchTimer;
$("#searchBox").on("keyup", function() {
clearTimeout(searchTimer);
var query = $(this).val();
if (query.length < 3) return;
// صبر ۳۰۰ میلیثانیه بعد از آخرین تایپ
searchTimer = setTimeout(function() {
$.get("api/search.php", { q: query }, function(results) {
var html = "";
$.each(results, function(i, item) {
html += "<li>" + item.title + "</li>";
});
$("#searchResults").html(html).show();
}, "json");
}, 300);
});
GET یا POST؟
| معیار | GET | POST |
|---|---|---|
| هدف | دریافت داده | ارسال/تغییر داده |
| محل داده | در URL (قابل مشاهده) | در بدنه درخواست (مخفی) |
| امنیت | برای داده حساس مناسب نیست | مناسب رمز و داده حساس |
| حجم | محدود (حدود ۲KB) | بدون محدودیت عملی |
| کش | قابل کش | کش نمیشود |
جمعبندی
$.get()برای دریافت،$.post()برای ارسال داده- پارامتر سوم callback، پارامتر چهارم نوع داده (مثل "json")
.done()،.fail()و.always()برای مدیریت نتیجه- برای داده حساس همیشه POST استفاده کنید
این مبحث بخشی از دوره آموزش کامل jQuery است.