📞 02166056460

متد Get و Post ای جکس در جی کوئری

8 / 10
از 13 کاربر
بازگشت به لیست مقالات » | یکشنبه 3 آبان 1405 در ساعت 11 و 43 دقیقه | نظرات کاربران ( 0 )
آموزش jQuery Ajax

متدهای GET و POST در jQuery Ajax

انتخاب متد مناسب، ارسال داده و مدیریت پاسخ سرور

متدهای GET و POST در jQuery Ajax راهی ساده برای ارسال درخواست به سرور و دریافت پاسخ بدون بارگذاری دوباره کل صفحه هستند. انتخاب درست میان این دو متد، به نوع کاری که انجام می دهید، حجم داده و شیوه پردازش سمت سرور بستگی دارد.

در این راهنما، ساختار متدهای $.get() و $.post() را بررسی می کنیم، نمونه کدهای کاربردی می بینیم و یاد می گیریم پاسخ ها و خطاهای درخواست را بهتر مدیریت کنیم. اگر در کنار توسعه فنی به طراحی سایت هم علاقه دارید، رعایت همین جزئیات می تواند تجربه کاربری صفحات را بهبود دهد.

۰۱

آشنایی با درخواست Ajax و متد GET

Ajax به صفحه وب اجازه می دهد بخشی از اطلاعات را از سرور دریافت یا برای آن ارسال کند، بی آنکه مرورگر مجبور شود تمام صفحه را دوباره بارگذاری کند. در jQuery، متدهای کوتاه و خوانایی مانند $.get() و $.post() برای ساخت این درخواست ها در دسترس هستند.

متد GET معمولا زمانی استفاده می شود که هدف، دریافت اطلاعات از سرور باشد؛ برای نمونه، خواندن فهرست محصولات یا دریافت جزئیات یک مقاله. داده های همراه درخواست GET معمولا در نشانی یا query string قرار می گیرند، بنابراین نباید اطلاعات محرمانه را در آن ها گذاشت.

نمونه زیر محتوای پاسخ سرور را دریافت می کند. آرگومان اول نشانی فایل یا مسیر API است و تابع callback پس از دریافت موفق پاسخ اجرا می شود:

$.get("test.php", function(data) {
  console.log(data);
});

اگر تنها لازم باشد درخواستی به نشانی مشخص ارسال شود و پاسخ آن در همان لحظه استفاده نشود، شکل کوتاه تری نیز وجود دارد. با این حال، در برنامه واقعی بهتر است نتیجه درخواست و خطاهای احتمالی را هم مدیریت کنید تا کاربر در صورت بروز مشکل با صفحه ای بی واکنش روبه رو نشود.

ارسال داده همراه درخواست GET

برای فرستادن داده، می توانید یک شیء جاوااسکریپت را به عنوان آرگومان دوم متد قرار دهید. jQuery داده ها را به قالب مناسب درخواست تبدیل می کند و آن ها را به نشانی اضافه می کند. نام فیلدها باید با چیزی که کد سمت سرور انتظار دارد هماهنگ باشد.

$.get("test.php", {
  name: "Ali",
  town: "Tehran"
}, function(data) {
  console.log(data);
});

این شیوه برای مقادیر ساده و کم حجم مناسب است؛ مانند شماره صفحه، عبارت جست وجو یا شناسه یک دسته بندی. برای داده هایی که باید محرمانه بمانند، GET انتخاب مناسبی نیست، چون پارامترها ممکن است در نوار نشانی، تاریخچه مرورگر یا گزارش های سرور دیده شوند.

ارسال آرایه با GET

در صورت نیاز به ارسال چند مقدار برای یک فیلد، می توان آرایه را در شیء داده قرار داد. برای مثال، فیلتر رنگ ها می تواند شامل چند گزینه انتخاب شده باشد:

$.get("test.php", {
  "colors[]": ["Red", "Green", "Blue"]
}, function(data) {
  console.log(data);
});

نحوه دریافت آرایه به زبان برنامه نویسی و تنظیمات سمت سرور بستگی دارد. پس از ارسال، مطمئن شوید نام فیلد و قالبی که سرور دریافت می کند یکسان هستند؛ در غیر این صورت ممکن است فقط بخشی از مقادیر پردازش شود یا داده ها به شکل مورد انتظار در دسترس نباشند.

اجزای اصلی متد GET

قالب رایج متد GET به شکل زیر است. بسته به نسخه jQuery و نیاز برنامه، بعضی آرگومان ها اختیاری هستند و می توانید فقط موارد ضروری را ارسال کنید:

$.get(URL, data, success, dataType);
🔗

URL

نشانی منبعی که درخواست برای دریافت اطلاعات به آن فرستاده می شود.

📡

data

داده های اختیاری همراه درخواست، مانند عبارت جست وجو یا شناسه صفحه.

⚙️

success

تابعی که پس از دریافت پاسخ موفق، داده های برگشتی را پردازش می کند.

💾

dataType

نوع پاسخ مورد انتظار از سرور، مانند JSON یا متن ساده.

آرگومان URL برای مشخص کردن مقصد درخواست به کار می رود. آرگومان data اختیاری است و اطلاعات مورد نیاز سرور را نگه می دارد. تابع موفقیت نیز در صورت دریافت پاسخ، داده را در اختیار کد شما می گذارد.

پارامتر dataType هم اختیاری است. اگر نوع پاسخ را مشخص نکنید، jQuery تلاش می کند آن را از پاسخ سرور تشخیص دهد. بهتر است نوع داده درخواستی و قالب واقعی پاسخ با هم سازگار باشند؛ برای نمونه، اگر سرور JSON برمی گرداند، درخواست را نیز متناسب با آن تنظیم کنید.

پارامتر کاربرد وضعیت
URL تعیین مسیر فایل یا API مقصد ضروری
data ارسال اطلاعات همراه درخواست اختیاری
success پردازش پاسخ موفق سرور اختیاری
dataType مشخص کردن قالب پاسخ مورد انتظار اختیاری
۰۲

مدیریت پاسخ و وضعیت درخواست

تابع موفقیت معمولا داده دریافتی از سرور را به عنوان آرگومان نخست دریافت می کند. در امضای callback، آرگومان های دیگری نیز ممکن است در دسترس باشند؛ از جمله وضعیت درخواست و شیء jqXHR. این اطلاعات برای ثبت گزارش، نمایش پیام مناسب یا بررسی جزئیات پاسخ مفید هستند.

در نمونه های قدیمی، وضعیت هایی مانند success، error، timeout و parsererror در توضیح نتیجه درخواست دیده می شوند. نام و جزئیات وضعیت ها به روش استفاده از Ajax و نسخه کتابخانه وابسته است؛ بنابراین برای مدیریت کامل خطا، از زنجیره های .done() و .fail() نیز می توان استفاده کرد.

نمونه زیر پاسخ موفق و خطای درخواست را جداگانه مدیریت می کند:

$.get("test.php", { page: 1 }, "json")
  .done(function(data) {
    console.log("پاسخ دریافت شد:", data);
  })
  .fail(function(jqXHR, textStatus, errorThrown) {
    console.error("درخواست ناموفق بود:", textStatus, errorThrown);
  });

اگر پاسخ سرور JSON باشد، سرور باید آن را با قالب معتبر و سرآیند مناسب برگرداند. در غیر این صورت، ممکن است درخواست به سرور برسد اما تبدیل پاسخ به داده قابل استفاده با خطا روبه رو شود. هنگام عیب یابی، ابزار توسعه مرورگر و گزارش سمت سرور را در کنار هم بررسی کنید.

قالب های رایج پاسخ

پاسخ Ajax می تواند قالب های مختلفی داشته باشد. در jQuery، مقدار dataType برای اعلام قالب مورد انتظار استفاده می شود؛ از جمله json، xml، html و text. انتخاب درست آن، پردازش داده را روشن تر و قابل پیش بینی تر می کند.

📊

JSON

مناسب برای تبادل داده های ساختاریافته میان صفحه و سرور.

📄

XML

قالب نشانه گذاریافته ای که در برخی سامانه های قدیمی یا خاص استفاده می شود.

🎨

HTML

برای دریافت بخشی از نشانه گذاری صفحه و نمایش آن در رابط کاربری.

🔤

متن ساده

برای پاسخ های کوتاه یا محتوایی که ساختار پیچیده ای ندارد.

۰۳

متد POST در jQuery چیست؟

متد POST زمانی کاربرد دارد که لازم باشد داده ای برای پردازش به سرور ارسال شود؛ مانند ثبت فرم، ایجاد یک نظر یا ذخیره تنظیمات. شیوه ارسال داده با GET تفاوت دارد و مقادیر معمول آن در بدنه درخواست قرار می گیرند، نه در query string نشانی.

POST به تنهایی داده را رمزنگاری یا ایمن نمی کند. برای محافظت از اطلاعات در مسیر انتقال، استفاده از HTTPS ضروری است و برنامه سمت سرور نیز باید اعتبارسنجی، مجوز دسترسی و کنترل های امنیتی لازم را انجام دهد.

قالب ساده متد در jQuery به شکل زیر است. نام تابع صحیح $.post() است و برخلاف برخی نمونه های نادرست، آن را به شکل متد یک selector مانند $(selector).post() فراخوانی نمی کنیم:

$.post(URL, data, success, dataType);

در اینجا نیز مسیر درخواست در آرگومان نخست قرار می گیرد، داده های ارسالی در آرگومان دوم و تابع موفقیت در آرگومان سوم نوشته می شود. می توانید آرگومان های اختیاری را حذف کنید، اما هماهنگی ساختار داده با سرور همچنان لازم است.

نمونه ثبت اطلاعات با POST

فرض کنید فرمی نام و پیام کاربر را دریافت می کند. داده ها را می توان در قالب یک شیء به سرور فرستاد و نتیجه را پس از پاسخ نمایش داد:

$.post("save-message.php", {
  name: "Ali",
  message: "سلام"
}, function(response) {
  console.log(response);
}, "json");

در یک فرم واقعی، مقدارها را از فیلدهای صفحه می خوانید و پیش از ارسال، ورودی های لازم را بررسی می کنید. اعتبارسنجی سمت کاربر برای تجربه بهتر مفید است، اما جای اعتبارسنجی سمت سرور را نمی گیرد؛ هر داده ورودی باید در سرور نیز بررسی شود.

گام بعدی

Ajax را در تجربه کاربری سایت به کار بگیرید

در توسعه وب، پیاده سازی درست درخواست های Ajax در کنار ساختار مناسب صفحه می تواند تعامل کاربر با سایت را روان تر کند.

طراحی سایت ←
۲ متد
GET و POST
۴ پارامتر
قالب رایج فراخوانی
۴ قالب
JSON، XML، HTML و متن

GET یا POST؛ کدام را انتخاب کنیم؟

۰۴

هدف درخواست را در نظر بگیرید

اگر درخواست فقط برای خواندن اطلاعات است و پارامترها کوچک و غیرمحرمانه هستند، GET معمولا انتخاب روشن تری است. امکان مشاهده پارامترها در نشانی، اشتراک گذاری یا ذخیره برخی درخواست های خواندنی را ساده می کند؛ البته نباید فرض کرد هر درخواست GET در همه شرایط ذخیره یا قابل اشتراک گذاری است.

برای ارسال داده ای که قرار است در سرور ثبت یا پردازش شود، معمولا POST مناسب تر است. برای مثال، ارسال فرم تماس یا ثبت سفارش با POST انجام می شود. رفتار نهایی به طراحی API و قرارداد میان مرورگر و سرور بستگی دارد، پس مستندات endpoint را بررسی کنید.

۰۵

حجم و حساسیت داده را بسنجید

پارامترهای GET بخشی از URL می شوند و محدودیت طول نشانی در مرورگرها، سرورها و زیرساخت های میانی می تواند بر درخواست های بسیار طولانی اثر بگذارد. از این روش برای داده های حجیم یا اطلاعاتی که نباید در نشانی دیده شوند استفاده نکنید.

POST داده را در بدنه درخواست می فرستد و برای ارسال حجم بیشتر انعطاف پذیرتر است؛ اما این به معنای نامحدود بودن حجم یا امن بودن خودکار آن نیست. محدودیت اندازه درخواست باید در سرور تنظیم شود و انتقال اطلاعات حساس باید با HTTPS محافظت شود.

۰۶

رفتار مورد انتظار از سرور را بررسی کنید

GET در کاربرد معمول برای خواندن داده استفاده می شود و بهتر است فراخوانی آن باعث تغییر ناخواسته وضعیت سرور نشود. POST معمولا برای عملیاتی به کار می رود که داده ای را ایجاد یا پردازش می کنند. این تمایز به خوانایی API و پیش بینی رفتار درخواست ها کمک می کند.

برای مثال، فیلتر کردن فهرست محصولات می تواند با GET انجام شود؛ اما ایجاد یک سفارش جدید معمولا با POST صورت می گیرد. اگر endpoint در مستندات روش دیگری را تعریف کرده است، همان قرارداد را رعایت کنید تا درخواست از سوی سرور رد نشود.

معیار GET POST
کاربرد رایج دریافت اطلاعات ارسال یا پردازش اطلاعات
جایگاه معمول داده پارامترهای نشانی بدنه درخواست
قابل مشاهده بودن داده ممکن است در URL دیده شود معمولا در URL نمایش داده نمی شود
نمونه کاربرد جست وجو و دریافت فهرست ثبت فرم یا ایجاد داده

مزایای استفاده از متدهای Ajax در jQuery

مزایای درخواست Ajax

تعامل بهتر با صفحه

درخواست هدفمند و پاسخ قابل مدیریت
۰۱
کارایی

بارگذاری هدفمند

دریافت داده بدون بارگذاری دوباره کل صفحه

۰۲
سادگی

کد خواناتر

فراخوانی کوتاه برای درخواست های رایج

۰۳
انعطاف

داده های متنوع

کار با پاسخ های JSON، HTML یا متن

۰۴
مدیریت

کنترل پاسخ

امکان رسیدگی جداگانه به موفقیت و خطا

اشتباهات رایج هنگام استفاده از GET و POST

۰۷

قرار دادن اطلاعات حساس در URL

پارامترهای GET ممکن است در نوار نشانی، تاریخچه مرورگر، گزارش های سرور یا ابزارهای واسط ثبت شوند. بنابراین رمز عبور، کلید خصوصی یا اطلاعات شخصی حساس را در query string قرار ندهید. برای انتقال داده حساس از روش مناسب، HTTPS و کنترل های امنیتی سمت سرور استفاده کنید.

۰۸

نادیده گرفتن خطاهای شبکه و سرور

اگر فقط callback موفقیت تعریف شود، خطاهایی مانند قطع اتصال، پاسخ نامعتبر یا خطای سرور ممکن است بدون پیام مناسب باقی بمانند. زنجیره .fail() یا سازوکار مدیریت خطای متناسب با نسخه jQuery را به کار ببرید و پیام قابل فهمی به کاربر نشان دهید.

۰۹

ناهماهنگی نوع پاسخ و داده مورد انتظار

اگر کد انتظار JSON داشته باشد اما سرور HTML یا متن نامعتبر برگرداند، پردازش پاسخ با مشکل روبه رو می شود. نوع داده مورد انتظار را با خروجی واقعی سرور هماهنگ کنید و پاسخ را در ابزار شبکه مرورگر بررسی کنید؛ حدس زدن قالب پاسخ جای بررسی قرارداد API را نمی گیرد.

۱۰

اعتماد بیش از حد به اعتبارسنجی مرورگر

اعتبارسنجی در صفحه به کاهش خطاهای کاربر کمک می کند، اما قابل دور زدن است. هر داده ای که با GET یا POST به سرور می رسد باید در سمت سرور نیز بررسی شود. همچنین برای عملیات حساس، مجوز کاربر و سازوکارهای حفاظتی متناسب با برنامه را کنترل کنید.

۱۱

نتیجه گیری: انتخاب درست میان GET و POST

متدهای GET و POST در jQuery Ajax هر دو برای ارتباط صفحه با سرور کاربرد دارند، اما هدف یکسانی ندارند. GET برای دریافت داده و ارسال پارامترهای غیرحساس مناسب است؛ POST معمولا برای فرستادن داده جهت ثبت یا پردازش به کار می رود. انتخاب نهایی باید با رفتار endpoint و قرارداد سمت سرور هماهنگ باشد.

پیش از پیاده سازی، نوع داده، حجم آن، قالب پاسخ و نحوه مدیریت خطا را مشخص کنید. اطلاعات حساس را در URL قرار ندهید، از HTTPS بهره ببرید و اعتبارسنجی سمت سرور را فراموش نکنید. رعایت این نکته ها باعث می شود درخواست های Ajax قابل فهم تر، قابل نگهداری تر و مناسب تر برای تجربه کاربری باشند.

  • GET: برای دریافت اطلاعات و جست وجوی معمولی از آن استفاده کنید.
  • POST: برای ارسال داده جهت پردازش یا ثبت، آن را با قرارداد API هماهنگ کنید.
  • پاسخ: قالب واقعی داده و نوع مورد انتظار را یکسان نگه دارید.
  • خطا: شکست درخواست را مدیریت کنید و پیام مناسبی نمایش دهید.
  • امنیت: HTTPS و اعتبارسنجی سمت سرور را بخشی از پیاده سازی بدانید.
مورد بررسی پیشنهاد
دریافت فهرست یا جست وجو معمولا GET
ثبت فرم یا ایجاد داده معمولا POST
پاسخ ساختاریافته استفاده از قالبی مانند JSON، در صورت پشتیبانی سرور
رسیدگی به خطا استفاده از سازوکار fail یا مدیریت خطای مناسب

سوالات متداول متدهای GET و POST در jQuery Ajax

تفاوت اصلی GET و POST در jQuery چیست؟

GET معمولا برای دریافت اطلاعات استفاده می شود و داده های آن اغلب در URL قرار می گیرند. POST معمولا برای ارسال اطلاعات به سرور جهت پردازش یا ثبت به کار می رود و داده ها را در بدنه درخواست می فرستد. انتخاب درست به هدف درخواست و قرارداد API بستگی دارد.

آیا POST به تنهایی اطلاعات را امن می کند؟

خیر. POST باعث نمی شود داده ها به طور خودکار رمزنگاری شوند. برای محافظت از اطلاعات هنگام انتقال باید از HTTPS استفاده کنید و در سمت سرور نیز اعتبارسنجی و کنترل دسترسی انجام دهید. اطلاعات حساس را در URL قرار ندهید.

آرگومان dataType در متدهای GET و POST چه کاربردی دارد؟

این آرگومان نوع پاسخ مورد انتظار را مشخص می کند؛ برای نمونه JSON، XML، HTML یا متن ساده. اگر آن را تعیین نکنید، jQuery تلاش می کند نوع پاسخ را تشخیص دهد. بهتر است مقدار انتخابی با قالبی که سرور واقعا برمی گرداند هماهنگ باشد.

چطور خطای یک درخواست Ajax را مدیریت کنم؟

می توانید برای درخواست های مبتنی بر jqXHR از متدهایی مانند .fail() استفاده کنید و در صورت شکست، وضعیت را ثبت یا پیام مناسبی نمایش دهید. همچنین پاسخ و گزارش های سرور را برای پیدا کردن علت خطا بررسی کنید.

برای ارسال فرم در jQuery از GET استفاده کنم یا POST؟

برای فرمی که داده آن قرار است در سرور ثبت یا پردازش شود، معمولا POST انتخاب مناسب تری است. اگر فرم صرفا برای جست وجو یا دریافت اطلاعات باشد، GET می تواند گزینه مناسبی باشد. در هر دو حالت، قرارداد endpoint و اعتبارسنجی سمت سرور را رعایت کنید.

درخواست های Ajax را آگاهانه پیاده سازی کنید

با انتخاب درست میان GET و POST، تعیین قالب پاسخ و مدیریت خطا، ارتباط صفحه با سرور را روشن تر و قابل اعتمادتر بسازید.

طراحی سایت ←
ارسال نظر و نظرات ثبت شده
سایر مقالات
متد serializeArray ۵ نکته مهم درباره متد serializeArray در jQuery 💡آشنایی با متد در این بخش از آموزش JQuery، ب ...
متد serialize متد serialize در jQuery چیست و چگونه از آن استفاده کنیم؟ ⭐ آشنایی با serialize در این بخش از ...
متد $.post متد post در jQuery چیست و چگونه از آن استفاده کنیم؟ ⭐ آشنایی با درخواست POST در این راهنما، ...
متد load متد load در jQuery چیست و چگونه استفاده می‌شود؟ ⭐ متد load در jQuery متد load در jQuery ...
متد $.getScript آموزش jQuery متد getScript در jQuery؛ دریافت و اجرای فایل جاوااسکریپت نحوه استفاده، پارامت ...
متد $.getJSON آموزش جی کوئری متد $.getJSON در جی کوئری؛ آموزش دریافت داده های JSON نحوه استفاده، مدیریت ...
متد $.get آموزش jQuery آموزش متد $.get در jQuery؛ دریافت اطلاعات از سرور نحوه ارسال درخواست GET، دری ...
متد ajaxSuccess آموزش jQuery متد ajaxSuccess در jQuery؛ آموزش کاربرد و مثال آشنایی با رویداد موفقیت درخواس ...
متد ajaxStop آموزش jQuery متد ajaxStop در jQuery تشخیص پایان همه درخواست های هم زمان Ajax و اجرای کد من ...
متد ajaxStart آموزش jQuery متد ajaxStart در jQuery؛ آموزش کاربرد و مثال اجرای تابع هنگام آغاز درخواست&zw ...
متد $.ajaxSetup آموزش jQuery و Ajax متد ajaxSetup در jQuery: تنظیم پیش فرض درخواست های Ajax نحوه کار، نمون ...
متد ajaxSend آموزش jQuery متد ajaxSend در jQuery چیست و چگونه از آن استفاده کنیم؟ آشنایی با رویداد ارسا ...
متد ajaxError آموزش jQuery متد ajaxError در jQuery؛ مدیریت خطای درخواست Ajax نحوه کار، آرگومان‌ها، ...
متد ajaxComplete آموزش jQuery متد ajaxComplete در jQuery بررسی کاربرد، پارامترها، مثال عملی و نکات مهم روید ...
متد ajax آموزش jQuery متد Ajax در jQuery؛ راهنمای ارسال درخواست به سرور آشنایی با ساختار درخواست Aj ...
متد Get و Post ای جکس در جی کوئری آموزش jQuery Ajax متدهای GET و POST در jQuery Ajax انتخاب متد مناسب، ارسال داده و مدیریت پ ...
Ajax در Jquery چگونه است ؟ Ajax در jQuery چیست و چگونه کار می‌کند؟ 💡آشنایی با ایجکس Ajax در jQuery روشی ساده بر ...
دسته بندی
جستجو
⏳ در حال پردازش...
لطفا صبر کنید