Udemy Affiliate API с ошибкой выборки - PullRequest
0 голосов
/ 05 мая 2020

Я пытаюсь выполнить GET-запрос к udemy affiliate api v2, но продолжаю получать ошибку cors в консоли. Любая помощь приветствуется!

Цель

Я пытаюсь сделать запрос на получение курса из udemy api v2 с помощью Gridsome, Vue JS Powered stati c генератор сайтов. Ознакомьтесь с учебным пособием по аутентификации api для партнеров Udemy по адресу https://www.udemy.com/developers/affiliate/#authentication

Мой код

<template>
  <main>
    <div v-if="course">
      {{ course }}
    </div>
  </main
</template>

<script>
export default {
  data () {
    return {
      course: null
    }
  },
  async mounted () {
    const id = "YOUR_CLIENT_ID";
    const secret = "YOUR_CLIENT_SECRET";
    const baseURL = 'https://www.udemy.com/api-2.0';
    const authentication = new Buffer(`${id}:${secret}`).toString('base64');

    const response = await fetch(
      `${baseURL}/courses/238934/?fields[course]=title,headline`,
      {
        headers: {
          "Accept": "application/json, text/plain, */*",
          "Authorization": `Basic ${authentication}`,
          "Content-Type": "application/json;charset=utf-8"
        }
      });



    this.course = await response.json();    
  }
}

</script>

Что происходит

Вот именно то, что говорит консоль:

Access to fetch at 'https://www.udemy.com/api-2.0/courses/238934/?fields[course]=num_subscribers' from origin 'http://localhost:8080' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: 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.



GET https://www.udemy.com/api-2.0/courses/238934/?fields[course]=num_subscribers net::ERR_FAILED



[Vue warn]: Error in mounted hook (Promise/async): "TypeError: Failed to fetch"

found in

---> <Header> at src/components/Header.vue
       <Layout> at src/layouts/Default.vue
         <Index> at src/pages/Index.vue
           <App> at node_modules/gridsome/app/fallbacks/App.vue
             <Root>

Помогите, пожалуйста!

...