У меня есть API, написанный на Express / nodeJS, который размещен в GCloud. Cors средний износ включен и отвечает на запрос OPTIONS. Когда я пытаюсь вызвать API на локальном сервере, я могу получить доступ к API. Когда я пытаюсь получить доступ к API после развертывания, я получаю следующую ошибку:
Access to fetch at 'https://___.com/player' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Я вижу вызов OPTIONS в Chrome, и он возвращает следующие заголовки:
access-control-allow-methods: GET,HEAD,PUT,PATCH,POST,DELETE
access-control-allow-origin: *
alt-svc: clear
content-length: 0
date: Tue, 05 May 2020 18:40:13 GMT
status: 204
vary: Access-Control-Request-Headers
via: 1.1 google
x-powered-by: Express
Мой запрос выглядит следующим образом:
accept-encoding: gzip, deflate, br
accept-language: en-US,en;q=0.9
authorization: Bearer cache-control: no-cache
content-length: 31
content-type: text/plain;charset=UTF-8
origin: http://localhost:3000
pragma: no-cache
referer: http://localhost:3000/
sec-fetch-dest: empty
sec-fetch-mode: cors
sec-fetch-site: cross-site
sessionid:
user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36
Мой вызов извлечения из React:
const response = await fetch(
'https://___.com/player',
{
method: 'patch',
mode: 'cors',
credentials: 'same-origin',
headers: new Headers({
authorization: 'Bearer ' + appState.User.token,
sessionId: `${appState.SessionId}`,
}),
body: patch,
}
);
Любая помощь будет принята с благодарностью.