Как решить проблему cors с модулем узла the-noun-project (обертка api) с помощью приложения createact - PullRequest
0 голосов
/ 25 февраля 2020

Я застрял на этой проблеме. Я использую модуль узла https://www.npmjs.com/package/the-noun-project, он работает в определенной степени, я использую приложение «создать реагирование». Вот мой код до сих пор. Ошибка, которую я получаю, находится под кодом. Теперь я привык использовать что-то вроде cors где угодно с fetch , где я вручную изменяю URL и использую прокси cors где угодно, но когда я использую отдельный модуль узла, я не знаете, как бы я передавал его в cors, потому что я не могу изменить код в самом модуле node_module или есть альтернативное решение?

Заранее спасибо

import React from 'react';
import logo from './logo.svg';
import './App.css';
import NounProject from 'the-noun-project';

const nounProject = new NounProject({
    key: 'key',
    secret: 'secret'
});

console.log(nounProject);

nounProject.getIconsByTerm('goat', {limit: 5}, function (err, data) {
  if (!err) {
      console.log(data.icons);
  }
});

function App() {
  return (
    <div className="App">
      <header className="App-header">
        <img src={logo} className="App-logo" alt="logo" />
        <p>
          Edit <code>src/App.js</code> and save to reload.
        </p>
        <a
          className="App-link"
          href="https://reactjs.org"
          target="_blank"
          rel="noopener noreferrer"
        >
          Learn React
        </a>
      </header>
    </div>
  );
}

export default App;

error

Access to fetch at 'https://api.thenounproject.com/icons/goat?limit=5' 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. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

1 Ответ

0 голосов
/ 25 февраля 2020

Посмотрите здесь https://github.com/rosshettel/the-noun-project/issues/9, похоже, что сервер, к которому вы обращаетесь для этого npm пакета, не имеет правильного набора заголовков CORS. Вам нужно будет либо проложить маршрут через API, либо использовать блокировщик CORS, в зависимости от вашего браузера.

...