دوره زبان تخصصی برای برنامه‌نویسان (هدیه ویژه ثبت‌نام در دوره‌های متخصص) (فرصت محدود ⏰)
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ عباس سلیمانی
سوال در خصوص API
جامعه Html & CSS ایجاد شده در ۱۵ فروردین ۱۴۰۱

سلام

در خصوص استفاده از API و فراخوانی آنها هم تو دوره ، آموزشی داریم ؟

سلام.

اگر منظورتون Rest Api هست، این موضوع مرتبط با backend هست. چون اگر بخواهیم با ajax هم پیاده کنیم بخاطر تناقض در origin خطای cross origin اتفاق میوفته.

محسن موحد ۱۶ فروردین ۱۴۰۱، ۰۳:۴۸

مواردی هست که با استفاده از API ایی که در اختیار فرانت اند دولوپر قرار میگیره دیتا رو فراخوانی میکنه رو صفحه

API امادست و تا جایی که شنیدم وظیفه استفاده از API و فراخوانی دیتا به عهده فرانت میشه


عباس سلیمانی ۱۶ فروردین ۱۴۰۱، ۱۰:۲۴

اگر دامین یکی باشد و یا اگر دامین‌ها یکی نبود(یعنی دامین سروری که شما درخواستو به یک api ارسال میکنید) و هدر access-control-allow-origin برای شما ست شده باشه، شما میتونید بوسیله ajax از سمت فرانت این کارو انجام بدید. تکنولوژی ajax در دوره جاوااسکریپت خالص تدریس شده.

یک مثال از ماجرای cross origin بیارم.

ببینید این API در هربار اجرا یک بیت تصادفی میدهد: https://c.ganjoor.net/beyt-json.php

شما در همین صفحه inspect رو باز کنید و در تب console کد پایینو بنویسید:

fetch('https://c.ganjoor.net/beyt-json.php')

خطایی که تولید میشه:

Access to fetch at 'https://c.ganjoor.net/beyt-json.php' from origin 'https://7learn.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

چون origin یعنی منشأ که در اینجا دامین 7learn.com هست با مبدأ(host) یکی نیست این خطا در سمت مرورگر اتفاق میوفته.

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

بهترین پاسخ
محسن موحد ۱۶ فروردین ۱۴۰۱، ۲۳:۲۱