Предварительный запрос CORS - это запрос CORS, который проверяет, понятен ли протокол CORS, и знает ли сервер, используя определенные методы и заголовки.
Подробнее о предварительном запросеможно найти здесь.
Возможно, вам следует изучить, как обрабатывать Политику безопасности содержимого на вашем сервере.Все запросы, которые вы делаете из javascript, будут проверены браузером.Таким образом, ваш сервер должен ответить с заголовком Access-Control-Allow-Origin
Подробнее о заголовке здесь
Осматривая на вкладке сети браузера, вы сможете увидеть заголовки, которые присутствуют в вашем ответе.
Поскольку у вас нет контроля над сервером API
, вы можете создать прокси-сервер для связи с внешними серверами.Вы можете найти подробное руководство по здесь .
Вот пример конфигурации vhost nginx, которая обрабатывает прокси для всех запросов с /api
до https://api.example.com
server {
listen 80;
server_name example.com; # Your server domain, in your case localhost
location /api {
access_log off;
proxy_pass https://api.example.com; # <--- this will the target domain
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Таким образом, если вы наберете http://example.com/api/v3/accounts
, это будет перенаправлено на https://api.example.com/api/v3/accounts
.
В основном в вашем ответе должны быть указаны следующие заголовки.
Access-Control-Allow-Origin: https://yourdomain.com
Вы также можете иметь нижеконфигурации.
Access-Control-Allow-Origin: *
Если вы используете withCredentials , тогда вы не можете использовать подстановочный знак *
для заголовка Access-Control-Allow-Origin
, вам следует явно указать домен.