خطای no access control

چرا کد جاوا اسکریپت من خطای No Access Controlدریافت می ‌کند اما post نه؟!

سوال

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

XMLHttpRequest cannot load http://myApiUrl/login. 
No 'Access-Control-Allow-Origin' header is present on the requested resource. 
Origin 'null' is therefore not allowed access

من می دانم که API یا منبع راه دور باید سر صفحه را تنظیم کند، اما چرا وقتی درخواست را از طریق برنامه افزودنی Chrome Postman انجام دادم، کار کرد؟

این هم کد درخواست:

ajax({
      type: 'POST',
      dataType: 'text',
      url: api,
      username: 'user',
      password: 'pass',
      crossDomain: true,
      xhrFields: {
        withCredentials: true,
      },
    })
      .done(function (data) {
        console.log('done');
      })
      .fail(function (xhr, textStatus, errorThrown) {
        alert(xhr.responseText);
        alert(textStatus);
      });

پاسخ

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

هنگامی که از Postman استفاده می کنید، توسط این خط مشی محدود نمی شوند. به نقل از Cross-Origin XMLHttpRequest:

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

برای یادگیری جاوا اسکریپت می توانید از مسیر کارآموزی فرانت اند استفاده کنید.

پاسخ‌ها

آدرس ایمیل شما منتشر نخواهد شد.

پل ورود به بازار تکنولوژی

مشاوره رایگان انتخاب مسیر

با کمک مشاورهای رستاوا آکادمی مسیر کارآموزی مناسب برای خودت رو برای ورود به بازار کار تکنولوژی انتخاب کن

توسعه فردی برای حرفه‌ای شدن

منتورهای رستاوا و دوره‌های ما شما رو برای کارآموزی و در نهایت جذب و استخدام آماده میکنن

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

یادگیری با استاندار های بین المللی و دریافت مدرک از Credx Academy کانادا

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

۲ هفته رایگان

همین حالا با منتورها

ارتباط آنی بگیر!