📞 02166056460

متد $.getJSON

3 / 10
از 4 کاربر
بازگشت به لیست مقالات » | پنجشنبه 30 مهر 1405 در ساعت 15 و 27 دقیقه | نظرات کاربران ( 0 )
آموزش جی کوئری

متد $.getJSON در جی کوئری؛ آموزش دریافت داده های JSON

نحوه استفاده، مدیریت پاسخ و رفع خطا در درخواست های Ajax

در این بخش از آموزش JQuery، متد $.getJSON را با مثال های کاربردی بررسی می کنیم. این متد در جی کوئری برای فرستادن درخواست به سرور و دریافت پاسخ با قالب JSON به کار می رود و زمانی مفید است که بخواهید داده هایی مانند فهرست محصولات، خبرها یا اطلاعات یک کاربر را بدون بارگذاری دوباره صفحه نمایش دهید.

۰۱

متد $.getJSON چیست و چه کاری انجام می دهد؟

متد $.getJSON یکی از روش های ساده جی کوئری برای ارسال درخواست HTTP از نوع GET و دریافت پاسخ JSON است. پس از دریافت پاسخ، جی کوئری داده را به شکل قابل استفاده در اختیار تابع موفقیت قرار می دهد؛ بنابراین در حالت معمول نیازی نیست رشته JSON را به صورت دستی تجزیه کنید.

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

در بسیاری از پروژه های جدید، توسعه دهندگان از Fetch API یا ابزارهای دیگر جاوااسکریپت استفاده می کنند؛ با این حال، اگر پروژه از جی کوئری بهره می برد، آشنایی با متد $.getJSON کمک می کند کدهای موجود را بهتر بخوانید و نگهداری کنید.

۵ نکته مهم درباره متد $.getJSON

۰۲

۱. نشانی درخواست را درست مشخص کنید

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

برای مثال، اگر اطلاعات کالاها در مسیر /api/products ارائه می شود، درخواست را می توان به این مسیر فرستاد. پیش از استفاده، مسیر را در ابزارهای توسعه مرورگر بررسی کنید تا از درست بودن آن و دریافت پاسخ مورد انتظار مطمئن شوید.

$.getJSON('/api/products', function(data) {
  console.log(data);
});
۰۳

۲. پاسخ JSON را با ساختار واقعی آن بخوانید

تابع موفقیت، داده دریافتی را در پارامتر خود می گیرد. اینکه چگونه به مقادیر دسترسی پیدا می کنید به ساختار پاسخ وابسته است: پاسخ ممکن است یک آرایه باشد، یک شیء ساده باشد یا شیئی داشته باشد که آرایه ای از نتایج را در یکی از ویژگی هایش نگه می دارد.

فرض کنید سرور چنین پاسخی می فرستد: { "items": [{ "name": "Book" }] }. در این حالت، برای رسیدن به نام نخستین مورد باید از مسیر data.items[0].name استفاده کنید. ابتدا پاسخ واقعی را در کنسول ببینید و سپس کد را با همان ساختار هماهنگ کنید.

$.getJSON('/api/products', function(data) {
  data.items.forEach(function(item) {
    console.log(item.name);
  });
});
۰۴

۳. داده های ورودی را به شکل امن نمایش دهید

داده ای که از سرور می آید را نباید بدون توجه به نوع آن مستقیما به عنوان HTML در صفحه قرار داد. اگر مقدار دریافتی متن است، استفاده از .text() برای قرار دادن آن در عنصر صفحه انتخاب مطمئن تری است؛ زیرا مرورگر آن را متن در نظر می گیرد، نه کد قابل اجرا.

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

$.getJSON('/api/products', function(data) {
  $('#product-name').text(data.name);
});
۰۵

۴. خطاهای درخواست را نادیده نگیرید

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

با افزودن .fail() می توانید برای وضعیت ناموفق پیام مناسبی نمایش دهید یا جزئیات را برای بررسی در کنسول ثبت کنید. پیام کاربر بهتر است ساده باشد و اطلاعات فنی حساس را در رابط عمومی نمایش ندهد.

$.getJSON('/api/products')
  .done(function(data) {
    console.log(data);
  })
  .fail(function() {
    $('#message').text('دریافت اطلاعات انجام نشد.');
  });
۰۶

۵. از پارامترها برای ارسال اطلاعات جست وجو استفاده کنید

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

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

$.getJSON('/api/search', { q: 'jquery' }, function(data) {
  console.log(data);
});
⚡

درخواست GET

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

📊

پاسخ JSON

پاسخ JSON پس از دریافت در اختیار تابع موفقیت قرار می گیرد.

🔄

به روزرسانی صفحه

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

۰۷

ساختار کلی و آرگومان های متد

ساختار پایه متد $.getJSON شامل نشانی درخواست، داده های اختیاری و تابعی برای پردازش پاسخ است. شکل خلاصه آن را در نمونه زیر می بینید. اگر داده ای برای ارسال ندارید، می توانید آرگومان داده را حذف کنید.

$.getJSON(url, data, success);

در این ساختار، url نشانی منبع، data پارامترهای اختیاری درخواست و success تابعی است که پس از دریافت موفق پاسخ اجرا می شود. تابع موفقیت معمولا داده را به عنوان آرگومان نخست دریافت می کند؛ آرگومان های دیگر نیز می توانند اطلاعاتی مانند وضعیت درخواست یا شیء درخواست را در اختیار شما بگذارند.

در نسخه های رایج جی کوئری، نتیجه متد یک شیء درخواست قابل زنجیره سازی است. این ویژگی اجازه می دهد مدیریت موفقیت و خطا را به جای تکیه بر آرگومان های جداگانه، با متدهایی مانند .done() و .fail() بنویسید. برای پروژه خود، نسخه جی کوئری و شیوه های سازگار با آن را بررسی کنید.

راهنمای استفاده درست از متد $.getJSON

۰۸

بررسی پاسخ در ابزارهای توسعه

هنگام پیاده سازی، ابتدا مطمئن شوید درخواست به مسیر درست می رود و سرور پاسخ JSON معتبر برمی گرداند. بخش Network در ابزارهای توسعه مرورگر، نشانی درخواست، کد وضعیت و محتوای پاسخ را نشان می دهد. بررسی این موارد کمک می کند مشکل مسیر یا قالب پاسخ را از ایرادهای رابط کاربری جدا کنید.

در کنار آن، استفاده موقت از console.log(data) کمک می کند ساختار واقعی پاسخ را ببینید. پس از پایان بررسی، گزارش های غیرضروری را حذف کنید یا آن ها را به سازوکار ثبت رویدادهای مناسب پروژه منتقل کنید.

۰۹

توجه به مسیر و دسترسی سرور

اگر درخواست از صفحه ای به دامنه یا مبدأ دیگری فرستاده می شود، محدودیت های امنیتی مرورگر و تنظیمات دسترسی بین مبدأها می توانند بر نتیجه اثر بگذارند. در این شرایط، تنها تغییر کد سمت مرورگر کافی نیست و تنظیمات سرور نیز باید اجازه دسترسی لازم را فراهم کند.

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

۱۰

نمایش وضعیت بارگذاری و نتیجه خالی

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

همچنین پاسخ موفق همیشه به معنی وجود نتیجه نیست. برای مثال، جست وجوی معتبر می تواند آرایه خالی برگرداند. این وضعیت را از خطای درخواست جدا کنید و پیامی روشن مانند «موردی پیدا نشد» نمایش دهید تا کاربر تفاوت این دو حالت را بداند.

✅

نشانی معتبر

مسیر API و دسترسی به منبع را پیش از پردازش پاسخ بررسی کنید.

🔒

نمایش امن

مقادیر متنی دریافتی را با روش مناسب در صفحه قرار دهید.

🚨

مدیریت خطا

برای شکست درخواست، پیام قابل فهم و متناسب آماده کنید.

📡

بررسی شبکه

پاسخ سرور و وضعیت درخواست را در ابزارهای مرورگر ببینید.

مطالعه بیشتر

برای توسعه وب، اصول پایه را جدی بگیرید

آشنایی با ابزارهای وب و روش های پیاده سازی، در مسیر طراحی سایت و توسعه رابط های کاربردی به شما کمک می کند.

طراحی سایت ←
۱۱

تفاوت $.getJSON با روش های دیگر Ajax

متد $.getJSON برای سناریوی مشخصی ساخته شده است: ارسال درخواست GET و انتظار پاسخ JSON. این سادگی می تواند کد را خواناتر کند، به خصوص وقتی هدف فقط دریافت داده است. در مقابل، متد عمومی $.ajax() گزینه های بیشتری برای تنظیم نوع درخواست، هدرها، زمان انتظار و قالب داده در اختیار می گذارد.

اگر پروژه شما از جی کوئری استفاده می کند و به تنظیمات ویژه نیاز ندارید، $.getJSON() راه مستقیمی برای دریافت داده است. وقتی کنترل بیشتری لازم دارید، $.ajax() انتخاب انعطاف پذیرتری خواهد بود. در پروژه های بدون جی کوئری نیز می توانید از Fetch API استفاده کنید تا وابستگی تازه ای اضافه نشود.

روش کاربرد اصلی نکته قابل توجه
$.getJSON() دریافت داده JSON با درخواست GET ساده و مناسب برای دریافت معمول داده
$.ajax() تنظیم درخواست های گوناگون گزینه های بیشتری برای پیکربندی دارد
Fetch API ارسال درخواست در جاوااسکریپت جدید بدون نیاز به جی کوئری قابل استفاده است

سوالات متداول درباره متد $.getJSON

متد $.getJSON در جی کوئری چه کاربردی دارد؟

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

آیا برای استفاده از $.getJSON باید JSON را دستی تجزیه کنم؟

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

چگونه خطای درخواست را با $.getJSON مدیریت کنم؟

می توانید از متدهایی مانند .fail() برای تعریف رفتار زمان شکست درخواست استفاده کنید. برای مثال، پیام مناسبی به کاربر نشان دهید و جزئیات فنی را برای عیب یابی در ابزارهای توسعه بررسی کنید.

آیا می توان پارامتر جست وجو به درخواست اضافه کرد؟

بله. می توانید یک شیء شامل پارامترها را به عنوان آرگومان داده بفرستید. جی کوئری این مقادیر را به درخواست اضافه می کند؛ برای نمونه می توانید عبارت جست وجو یا شماره صفحه را به مسیر API ارسال کنید.

چه زمانی بهتر است از $.ajax به جای $.getJSON استفاده کنم؟

اگر به تنظیمات بیشتری مانند تعیین نوع درخواست، هدرهای خاص یا گزینه های پیشرفته نیاز دارید، $.ajax() کنترل گسترده تری می دهد. برای دریافت ساده JSON با درخواست GET، استفاده از $.getJSON() معمولا روشن و سرراست است.

مزایای متد $.getJSON

دریافت داده به شکل ساده

مناسب برای درخواست های متداول جی کوئری
۰۱
سادگی

کد کوتاه تر

درخواست GET برای دریافت JSON با کدی روشن.

۰۲
پردازش

داده آماده استفاده

پاسخ در تابع موفقیت در دسترس قرار می گیرد.

۰۳
تعامل

به روزرسانی بخشی

بدون بارگذاری دوباره تمام صفحه.

۰۴
انعطاف

پشتیبانی از پارامتر

ارسال مقادیری مانند عبارت جست وجو به سرور.

۰۵
عیب یابی

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

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

۱۲

نتیجه گیری درباره متد $.getJSON

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

در پیاده سازی نهایی، پاسخ را در ابزارهای توسعه بررسی کنید، داده های متنی را به شکل امن نمایش دهید و برای وضعیت بارگذاری یا نتیجه خالی پیام مناسب در نظر بگیرید. اگر به تنظیمات گسترده تر نیاز دارید، روش هایی مانند $.ajax() یا Fetch API را نیز با نیاز پروژه مقایسه کنید.

با مثال های کوچک، کار با Ajax را تمرین کنید

ابتدا یک درخواست ساده بسازید، پاسخ JSON را بررسی کنید و سپس مدیریت خطا و نمایش امن داده ها را به برنامه اضافه کنید.

مرور آموزش متد $.getJSON ←
ارسال نظر و نظرات ثبت شده
سایر مقالات
متد 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 روشی ساده بر ...
دسته بندی
جستجو
⏳ در حال پردازش...
لطفا صبر کنید