آموزش ارتباط با سرور و ارسال درخواست‌های HTTP با Fetch API در جاوا اسکریپت: راهنمای جامع با مثال‌ها

دسته : آموزش رایگان جاوا اسکریپت (JavaScript)

آموزش ارتباط با سرور و ارسال درخواست‌های HTTP با Fetch API در جاوا اسکریپت: راهنمای جامع با مثال‌ها

آموزش ارتباط با سرور و ارسال درخواست‌های HTTP با Fetch API در جاوا اسکریپت: راهنمای جامع با مثال‌ها

در دنیای توسعه وب، تعامل با سرور و ارسال درخواست‌های HTTP برای دریافت یا ارسال داده‌ها امری ضروری است. یکی از ابزارهای ساده و مدرن جاوااسکریپت برای انجام این کار Fetch API است. در این مقاله، نحوه استفاده از Fetch API برای ارتباط با سرور و ارسال درخواست‌های HTTP را بررسی می‌کنیم. همچنین نکات بهینه‌سازی برای سئو بر اساس استانداردهای گوگل را مورد توجه قرار می‌دهیم.


Fetch API چیست؟

Fetch API یک رابط کاربری مدرن برای برقراری ارتباط با سرور از طریق HTTP است که جایگزین روش‌های قدیمی‌تر مانند XMLHttpRequest شده است. این API از Promises استفاده می‌کند و کدهای شما را خوانا‌تر و بهینه‌تر می‌کند.


مزایای Fetch API:

  • استفاده از Promises: از Promises برای مدیریت نتایج و خطاها استفاده می‌کند، که خوانایی کد را بهبود می‌بخشد.

  • پشتیبانی از روش‌های مختلف HTTP: می‌توانید درخواست‌های GET، POST، PUT، DELETE و غیره را به راحتی ارسال کنید.

  • مدیریت آسان داده‌های JSON: به‌طور بومی از JSON پشتیبانی می‌کند.


ارسال درخواست GET با Fetch API

روش GET رایج‌ترین نوع درخواست HTTP است و برای دریافت داده‌ها از سرور استفاده می‌شود.

مثال:



fetch('https://api.example.com/data')
  .then(response => {
    if (!response.ok) {
      throw new Error('Network response was not ok');
    }
    return response.json();
  })
  .then(data => {
    console.log(data);
  })
  .catch(error => {
    console.error('There was a problem with the fetch operation:', error);
  });


در این کد:

  • fetch() برای ارسال درخواست HTTP به آدرس مورد نظر استفاده می‌شود.

  • در صورتی که پاسخ سرور موفقیت‌آمیز نباشد، خطا پرتاب می‌شود.

  • response.json() داده‌های دریافتی را به فرمت JSON تبدیل می‌کند.

  • در صورت بروز خطا، catch() برای مدیریت خطاها استفاده می‌شود.


ارسال درخواست POST با Fetch API

POST برای ارسال داده‌ها به سرور استفاده می‌شود، مثلاً برای ارسال فرم‌ها یا داده‌های جدید به API.

مثال:



fetch('https://api.example.com/data', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    name: 'John Doe',
    age: 30
  }),
})
  .then(response => response.json())
  .then(data => {
    console.log('Success:', data);
  })
  .catch((error) => {
    console.error('Error:', error);
  });


در این مثال:

  • با استفاده از method: 'POST' نوع درخواست تعیین شده است.

  • در قسمت headers نوع محتوای درخواست (application/json) مشخص شده است.

  • داده‌ها در قالب JSON از طریق body ارسال می‌شوند.

  • پاسخ سرور به JSON تبدیل شده و در کنسول نمایش داده می‌شود.


ارسال درخواست با متدهای دیگر (PUT و DELETE)

PUT برای به‌روزرسانی داده‌ها و DELETE برای حذف داده‌ها استفاده می‌شوند.

مثال درخواست PUT:



fetch('https://api.example.com/data/1', {
  method: 'PUT',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    name: 'Jane Doe',
    age: 25
  }),
})
  .then(response => response.json())
  .then(data => {
    console.log('Data updated:', data);
  })
  .catch((error) => {
    console.error('Error:', error);
  });
مثال درخواست DELETE:
javascript
Copy code
fetch('https://api.example.com/data/1', {
  method: 'DELETE',
})
  .then(response => {
    if (response.ok) {
      console.log('Data deleted successfully');
    } else {
      console.error('Error deleting data');
    }
  })
  .catch((error) => {
    console.error('Error:', error);
  });


مدیریت خطاها در Fetch API

Fetch API به‌طور پیش‌فرض فقط خطاهای مربوط به شکست شبکه را مدیریت می‌کند. برای بررسی وضعیت‌های مختلف HTTP (مثل 404 یا 500)، باید از کد وضعیت (status) استفاده کنید.

مثال:



fetch('https://api.example.com/data')
  .then(response => {
    if (!response.ok) {
      throw new Error(`HTTP error! status: ${response.status}`);
    }
    return response.json();
  })
  .then(data => {
    console.log(data);
  })
  .catch(error => {
    console.error('Fetch error:', error);
  });


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


نکات مهم برای بهینه‌سازی Fetch API

  • استفاده از async/await: برای خوانایی بهتر و مدیریت راحت‌تر درخواست‌ها، از async/await استفاده کنید.

مثال:



async function fetchData() {
  try {
    let response = await fetch('https://api.example.com/data');
    if (!response.ok) {
      throw new Error(`HTTP error! status: ${response.status}`);
    }
    let data = await response.json();
    console.log(data);
  } catch (error) {
    console.error('Fetch error:', error);
  }
}

fetchData();


  • مدیریت CORS: هنگام ارتباط با سرورهای دیگر ممکن است با مشکل CORS مواجه شوید. در این حالت سرور باید تنظیمات دسترسی CORS را صحیح پیکربندی کند.

  • مدیریت Timeout: Fetch API به‌طور پیش‌فرض تایم‌اوت ندارد. برای تعیین زمان انتظار می‌توانید از روش‌های اضافی استفاده کنید.

مثال:



const controller = new AbortController();
const timeoutId = setTimeout(() => controller.abort(), 5000);

fetch('https://api.example.com/data', { signal: controller.signal })
  .then(response => response.json())
  .then(data => {
    console.log(data);
  })
  .catch(error => {
    if (error.name === 'AbortError') {
      console.error('Request timed out');
    } else {
      console.error('Fetch error:', error);
    }
  });


سازگاری مرورگر: Fetch API توسط بیشتر مرورگرهای مدرن پشتیبانی می‌شود. برای مرورگرهای قدیمی‌تر، ممکن است نیاز به استفاده از polyfill داشته باشید.


نتیجه‌گیری

استفاده از Fetch API در جاوااسکریپت یک روش قدرتمند و مدرن برای برقراری ارتباط با سرور و ارسال درخواست‌های HTTP است. با استفاده از این API می‌توانید درخواست‌های GET، POST، PUT و DELETE را به راحتی ارسال کنید و از Promiseها برای مدیریت نتایج و خطاها بهره ببرید. همچنین استفاده از async/await به شما کمک می‌کند تا کدهای خود را بهینه و خواناتر کنید.

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

آموزش ساخت یک برنامه ساده با Fetch API در جاوا اسکریپت: راهنمای گام به گام

آموزش ساخت یک برنامه ساده با Fetch API در جاوا اسکریپت: راهنمای گام به گام

1م آبان 1403

مطالعه بیشتر

آموزش ساخت یک گالری تصویر با استفاده از جاوا اسکریپت: راهنمای گام به گام

آموزش ساخت یک گالری تصویر با استفاده از جاوا اسکریپت: راهنمای گام به گام

3م آبان 1403

مطالعه بیشتر

آموزش ایجاد Transitions و انیمیشن‌های صفحه بارگذاری (Loader) در CSS: طراحی لودرهای جذاب

آموزش ایجاد Transitions و انیمیشن‌های صفحه بارگذاری (Loader) در CSS: طراحی لودرهای جذاب

16م آبان 1403

مطالعه بیشتر

آموزش ساخت ماشین حساب با جاوا اسکریپت: راهنمای کامل با مثال‌های کاربردی

آموزش ساخت ماشین حساب با جاوا اسکریپت: راهنمای کامل با مثال‌های کاربردی

4م آبان 1403

مطالعه بیشتر

آموزش رویدادهای پیشرفته در جاوا اسکریپت: بابلینگ، کپچرینگ و توقف پیش‌فرض - راهنمای جامع

آموزش رویدادهای پیشرفته در جاوا اسکریپت: بابلینگ، کپچرینگ و توقف پیش‌فرض - راهنمای جامع

2م آبان 1403

مطالعه بیشتر

آموزش کامل کنترل جریان و استفاده از if و else در جاوا اسکریپت: راهنمای جامع برای مبتدیان

آموزش کامل کنترل جریان و استفاده از if و else در جاوا اسکریپت: راهنمای جامع برای مبتدیان

2م بهمن 1402

مطالعه بیشتر

الگوهای رایج برنامه‌نویسی ناهمگام در جاوا اسکریپت: Promise.race، Promise.all، و Promise.any کامل و مثال‌ها

الگوهای رایج برنامه‌نویسی ناهمگام در جاوا اسکریپت: Promise.race، Promise.all، و Promise.any کامل و مثال‌ها

1م آبان 1403

مطالعه بیشتر

مدیریت خطاها و استفاده از try...catch در جاوا اسکریپت: راهنمای کامل و مثال‌ها

مدیریت خطاها و استفاده از try...catch در جاوا اسکریپت: راهنمای کامل و مثال‌ها

28م مهر 1403

مطالعه بیشتر

آموزش ارث‌بری (Inheritance) در جاوا اسکریپت: نحوه استفاده از پروتوتایپ‌ها و کلاس‌ها

آموزش ارث‌بری (Inheritance) در جاوا اسکریپت: نحوه استفاده از پروتوتایپ‌ها و کلاس‌ها

28م مهر 1403

مطالعه بیشتر

آموزش تغییر نوع و اندازه فونت و رنگ متن با CSS: استایل‌دهی حرفه‌ای به متن‌ها

آموزش تغییر نوع و اندازه فونت و رنگ متن با CSS: استایل‌دهی حرفه‌ای به متن‌ها

5م شهریور 1402

مطالعه بیشتر

آموزش CSS Blend Modes: ادغام رنگ‌ها و تصاویر برای طراحی وب جذاب

آموزش CSS Blend Modes: ادغام رنگ‌ها و تصاویر برای طراحی وب جذاب

9م آبان 1403

مطالعه بیشتر

مفاهیم پیشرفته در کلاس‌ها و وراثت (Super, Extends) در جاوا اسکریپت: راهنمای کامل و مثال‌ها

مفاهیم پیشرفته در کلاس‌ها و وراثت (Super, Extends) در جاوا اسکریپت: راهنمای کامل و مثال‌ها

29م مهر 1403

مطالعه بیشتر

تمامی حقوق معتلق به ناشر سایت است و کپی از آن پیگرد قانونی دارد