Я пытаюсь fetch
API на ReactJS
с basi c аутентификацией (это сложный запрос).
Я наткнулся на многие статьи, большинство предлагаем изменить что-то на node
, но здесь, в этом случае, я не использую какой-либо сервер узла. Я закомментировал весь код NodeJS
и извлекаю этот API напрямую из componentDidMount()
, очевидно, у ReactJS
есть собственный сервер. В настоящее время я использую сторонний плагин cors chrome, но я не склонен использовать сторонние прокси-серверы, такие как Heroku
или NGINX
, или сторонние библиотеки, такие как axios
. Плагин Cors chrome помог мне решить проблему access-control-allow-origin
, но затем поднял эту новую проблему.
Access to fetch at 'https://server-iam-fetching/' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: It does not have HTTP ok status.
Я пробовал несколько вещей, таких как добавление проверок контроля доступа к заголовку, но ни одна из них не работает. Вот мой пример кода:
let headers = new Headers();
headers.append("Access-Control-Request-Headers", "*")
headers.append('Authorization','Basic ' + btoa(username + ":" + password));
credentials
allow requests
allow origins
..
..
etc
const someRequest = new Request(url, {
method: 'GET',
headers:headers,
mode:'cors',
cache: 'default'
});
componentDidMount(){
fetch(someRequest)
.then(response => response.json())
.then(json => console.log(json))
}
Не стесняйтесь комментировать любые вопросы. Я на MacOS. Кроме того, я не хочу отключать мою chrome веб-безопасность.