Хорошо, я надеюсь, что я не делаю дубликат, но мой вопрос немного отличается от большинства результатов для вопросов CORS.
У меня есть бэкэнд api springboot rest, и у меня есть интерфейс с использованием Axios.
в моем интерфейсе API я добавил
@CrossOrigin(origins = {"http://localhost:3000", "http://localhost"})
@RequestMapping ...
...
Локально все работает нормально.
React работает на http://localhost:3000
API работает на http://localhost:8080/apixxx/orders
Итак, я развернул их на своем сервере Ubuntu:
Реагирует на http://12.123.12.123 (порт 80)
API работает на http://12.123.12.123:8080 (запросы почтальона успешны)
Теперь посмотрим, я поставил @CrossOrigin origin "http://localhost", потому что это для развернутой копии моего API, поскольку по отношению к серверу это localhost.
Теперь я получаю:
Доступ к XMLHttpRequest в «http://localhost:8080/apireq/v1/apiresourcexx' из источника» http://12.123.12.123' был заблокирован политикой CORS: в запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin».
это та же самая ошибка, которую я получаю локально при удалении @ CrossOrigin.
Я попытался добавить в начало координат "http://12.123.12.123"," http://12.123.12.123:80", "http://myDomainName.com" (имя моего домена)," http://myDomainName.com:80".
Ничего не работает. Все та же ошибка.
То, что я нашел работы:
@CrossOrigin(origins = {"*"})
Но я не хочу этого делать ....
Пожалуйста, помогите.
----- UPDATE -----
Хорошо, я сейчас очень запутался.
По-видимому, я только что понял, что маршрутизация axios, которую я использовал, является axios.post ('http://localhost:8080/apixxx/orders', ...); И в основном это будет указывать на запуск Springboot на моей локальной машине, а не на сервере Prod. Если это так, то каждый мой клиент будет иметь разное происхождение, и все они будут вызывать мой API ... Если это так, то единственным решением является то, которого я избегаю: @CrossOrigin (origins = "* «)
Пожалуйста, сообщите. Что вы, ребята, обычно делаете в этой ситуации.