💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۱۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۷ شبنم صفری
خطای: Failed to fetch TypeError: Failed to fetch
جامعه ری اکت ایجاد شده در ۲۶ تیر ۱۴۰۲

یک api با php نوشتم ولی برنامه نمیتونه فچ کنه. البته فچ روی api آدرس ip گفته شده در درس مشکلی نداره ولی خطای cors ر میده:

برنامه api:

header('Access-Control-Allow-Origin: *');

header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS');

header("Access-Control-Allow-Credentials: true");

   header('Content-Type: application/json; charset=utf-8');

header('Access-Control-Allow-Headers', 'Content-Type');

$q1 = $_GET["q1"];

$q2 = $_GET["q2"];

if($q1=="safari" && $q2=="123")

  $arr['userlogin'] = "true";

else   

  $arr['userlogin'] = "false";

echo json_encode($arr);

ممنون میشم که راهنمایی کنید

برنامه ری اکت:



شبنم صفری ۲۶ تیر ۱۴۰۲، ۱۱:۳۳

const response = await fetch('http://profwebsaz.ir/testapi?q1=safari&q2=123'); // , {mode:'no-cors'});

    return (await response.json()).userlogin;

شبنم صفری ۲۶ تیر ۱۴۰۲، ۱۱:۳۴

ممنون میشم که راهنمایی کنید

شبنم صفری ۲۶ تیر ۱۴۰۲، ۱۱:۳۵

سلام

کد رو بصورت صحیح وارد کنید

اینطوری واقعا خطایابی راحت نیست

مریم علی شاهی ۲۷ تیر ۱۴۰۲، ۱۳:۵۶

سلام

کد ری اکت در پیوست سوال بالا ارسال شده


شبنم صفری ۲۷ تیر ۱۴۰۲، ۱۴:۲۳

سلام مجدد

در api مجوزهای رو طبق زیر اصلاح کردم و مشکل cors در دستور fetch درست شد

$corsHeaders = array(

  'Access-Control-Allow-Origin: *', // اجازه دسترسی به همه دامنه‌ها

  'Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS', // مجوز روش‌های HTTP

  'Access-Control-Allow-Headers: Origin, Content-Type, X-Requested-With', // مجوز هدرهای خاص

  'Content-Type: application/json; charset=utf-8'

);


foreach ($corsHeaders as $header) {

  header($header);

}

شبنم صفری ۲۷ تیر ۱۴۰۲، ۱۶:۱۲

بله در موضوع CORS یا باید origin و host یکسان باشد یا باید هدرهای دسترسی در سمت سرور بدرستی ست شود و قبل از ست شده هدرها هیچ خروجی تولید نشود.

موفق باشید.

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