متدهای 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؟

معیارGETPOST
هدفدریافت دادهارسال/تغییر داده
محل دادهدر URL (قابل مشاهده)در بدنه درخواست (مخفی)
امنیتبرای داده حساس مناسب نیستمناسب رمز و داده حساس
حجممحدود (حدود ۲KB)بدون محدودیت عملی
کشقابل کشکش نمی‌شود

جمع‌بندی

این مبحث بخشی از دوره آموزش کامل jQuery است.

ابزارهای مرتبط