Когда нам нужно предоставлять услуги внешнему миру через спокойный интерфейс, если в настоящее время архитектура отделена от передней и задней части, она будет включать проблемы с междоменом. Как решить проблемы с междоменом? Давайте обсудим этот вопрос ниже.
Решение 1: добавить аннотацию @crossorigin на контроллере
Как использовать его следующим образом:
@Crossorigin // Метод аннотации @restcontroller public class handlerscancontroller {@crossorigin (alluctcredentials = "true", AltingHeaders = "*", methods = {requestMethod.get, requestMethod.post, requestMethod.delete, requestMethod.options, requestMethod. Origins = "*") @postmapping ("/perform") Общественный обработчик ответов (@Requestbody запрос JSON) {return null; }} Решение 2: Глобальная конфигурация
Код заключается в следующем:
@Configuration public class myconfiguration {@bean public webmvcconfigurer corsconfigurer () {return new webmvcconfigureradapter () {@override public void addcorsmappings (corsregistry regristry) {argish.addmapping («/**»). }}; }} Решение 3: Используйте в сочетании с фильтром
В основном классе Spring Boot добавьте CorsFilter
/** * * Внимание: простой междомен-это GET, HEAD и POST-запросы, но «контент-тип» запроса POST может быть только Application/X-WWW-FORM-URLENCODED, Multipart/Form-Data или Text/Plain * В противном случае это не просто перекрестная домен. Для этого перекрестного домена существует механизм перед полетом. Если это прямо, он выпустит два запроса: один запрос на опционы и один реальный запрос*/ @bean public corsfilter corsfilter () {final urlbasedcorsconfigurationsource source = new urlbasdcorsconfigurationsource (); final corsconfiguration config = new corsconfiguration (); config.setAllowcredentials (true); // разрешить файлам cookie к Cross-Domain config.addallowedorigin ("*"); // #спустил URI запросов на этот сервер, * означает все разрешенные. В Springmvc, если установить на *, он будет автоматически преобразован в Origin config.addallowedheader (" *"); // #Add для доступа к заголовку, * означает все config.setMaxage (18000L); // Время кэша запросов на выполнение (секунды), то есть в течение этого периода времени, config.addallowedMethod ("Options"); // методы, которые позволяют отправлять запросы, * означает, что все разрешают config.addallowedmethod ("head"); config.addallowedMethod ("get"); // разрешить метод запроса get config.addallowedmethod ("put"); config.addallowedMethod ("post"); config.addallowedMethod ("Delete"); config.addallowedmethod ("patch"); Source.registerCorsConfiguration ("/**", config); вернуть новый CorsFilter (источник); } Конечно, если есть много микросервисов, вам нужно добавить такой кусок кода в основной класс каждой услуги, что нарушает сухой принцип. Лучшим подходом является решение проблем с перекрестной доменной на слое Zuul, раз и навсегда.
Для получения дополнительной информации о перекрестном домене фронта, пожалуйста, см.
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.