Я настроил сервер он выдает такие заголовки:
HTTP/1.1 200 OK
Date: Sun, 17 Oct 2021 01:38:17 GMT
Server: Apache/2.4.29 (Ubuntu)
Strict-Transport-Security: max-age=31536000; preload
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, max-age=0
Pragma: no-cache
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: *
Access-Control-Allow-Headers: *
Access-Control-Allow-Credentials: true
Cache-Control: post-check=0, pre-check=0
Content-Length: 13
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: application/json; charset=utf-8
При попытке от клиента получить содержимое ответа от сервера получаю ошибку в консоли:
Access to fetch at '______' from origin 'http://0.0.0.0:9000' 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.
Вот сам код клиента
fetch(url, {
headers: { "Content-Type": "application/json; charset=utf-8" },
method: 'POST',
mode: 'cors',
cache: 'no-cache',
body: JSON.stringify(data),
}).then(res => res.json())
.then(response => {
console.log(response);
})
.catch(err => {
console.log(err);
});
Что я упускаю?
Я заметил что клиент еще отправляет запрос методом OPTIONS. Не знаю что это и зачем но сервер мой на этот запрос отвечает 404 ошибкой. Как его обработать и нужно ли?