Использование Axios для запроса Udemy API с токеном-носителем, не работающим в JavaScript - PullRequest
0 голосов
/ 21 октября 2019

Я просто хочу сделать запрос к API Udemy и показать курсы, которые я изучаю из своей учетной записи Udemy, но я изо всех сил пытаюсь подключиться к их базе данных. Я полагаю, что это как-то связано с носителем токена, который я им посылаю.

Здесь - это объяснение Удеми.

В своей первой попытке я использовалидентификатор клиента и секрет, который они дали мне в этом формате:

axios.get('https://www.udemy.com/api-2.0/courses/?category=title_cleaned', { headers:myclientID':'myClientSecret' }})
  .then(response => {
    this.setState({ udemy: response.data})
    console.log(response.data)
  })
  .catch(error => {
    console.log(error)
  })
console.log(this.state.udemy)
  }

, но получил следующую ошибку:

localhost/:1 Access to XMLHttpRequest at 'https://www.udemy.com/api-2.0/courses/? 
category=title_cleaned' from origin 'http://localhost:3000' 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.
App.js:32 Error: Network Error

at createError (createError.js:17)
at XMLHttpRequest.handleError (xhr.js:80)
xhr.js:166 Cross-Origin Read Blocking (CORB) blocked cross-origin response 
https://www.udemy.com/api-2.0/courses/?category=title_cleaned with MIME type text/html. See 
https://www.chromestatus.com/feature/5629709824032768 for more details.

Я пыталсячтобы изменить формат с токеном на предъявителя, который был сгенерирован, когда я поместил свой идентификатор клиента и секрет на их веб-сайт:

axios.get('https://www.udemy.com/api-2.0/courses/?category=title_cleaned', {headers:{ Authorization: "Bearer myBearerTokenNumber"}})
  .then(response => {
    this.setState({ udemy: response.data})
    console.log(response.data)
  })
  .catch(error => {
    console.log(error)
  })
console.log(this.state.udemy)
  }

Я получил то же сообщение об ошибке, что и раньше:

Access to XMLHttpRequest at 'https://www.udemy.com/api-2.0/courses/?category=title_cleaned' 
from origin 'http://localhost:3000' 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.
App.js:32 Error: Network Error
at createError (createError.js:17)
at XMLHttpRequest.handleError (xhr.js:80)

xhr.js:166 Cross-Origin Read Blocking (CORB) blocked cross-origin response 
https://www.udemy.com/api-2.0/courses/?category=title_cleaned with MIME type text/html. See 
https://www.chromestatus.com/feature/5629709824032768 for more details.

Я не знаю, мешает ли мне мой формат подключиться к их базе данных или их политика CORS запрещает этому URL-адресу делать вызовы в их базу данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...