фон
Многие из проектов, которые мы делаем сейчас, отделены от передней и задней части, что приводит к очень распространенной проблеме. Наши страницы и интерфейсы находятся под разными доменными именами. Когда мы получаем доступ к бэкэнд-интерфейсу через Ajax, возникают проблемы с междоменом. Как мы можем решить эту проблему? Вообще говоря, есть два решения: CORS и JSONP. Spring упрощает конфигурацию CORS, давайте посмотрим на CORS, которые он предоставляет.
Проблема с доменом описание
Веб-разработка часто сталкивается с междоменными проблемами, а решения включают: JSONP, IFRAME, CORS и т. Д.
CORS по сравнению с JSONP:
1. JSONP может реализовать только запросы GET, в то время как CORS поддерживает все типы HTTP -запросов.
2. Используя CORS, разработчики могут использовать обычный Xmlhttprequest для инициирования запросов и получения данных, которые имеют лучшую обработку ошибок, чем JSONP.
3. JSONP в основном поддерживается старыми браузерами. Они часто не поддерживают COR, и большинство современных браузеров уже поддерживают CORS.
Объект webmvcconfigurer
Мы можем инициализировать объект WebMVCConfigurer для настройки нашего картирования CORS.
@Configurationpublic class corscongiguration {@bean public webmvcconfigurer corsconfigurer () {return new webmvcconfigureradapter () {@override public void addCorsmappings (реестр corsregistry) {registry.addmapping ("/api/**"); // AlthororIgins ("http://domain2.com") // Укажите имя доменного домена //. AllowedMethods ("put", "Delete") //. Allowedheaders («Header1», «Header2», «Header3») // .ExposedHeaders («Header1», «Header2») //. AllowcredAntaintaintaintaintaintAndative («Header1»); }}; }}Унаследовать webmvcconfigureradapter
Этот метод очень похож на приведенный выше метод
@Configuration @enablewebmvcpublic class corsconfiguration_2 extends webmvcconfigureradapter {@Override public void AddCorsMappings (Corsregistry Registry) {Registry.Addmapping ("/api/**"); }}Corsfilter
Этот метод редко используется сейчас
@Component@enablewebmvcpublic class corsfiltercongiguration extends corsfilter {public corsfilterCongiguration (corsconfigurationsource configsource) {super (configsource); } @Bean public filterRegistrationbean corsfilter () {urlbasedcorsconfigurationsource source = new urlbasedcorsconfigurationsource (); Corsconfiguration config = new corsconfiguration (); config.setAllowcredentials (true); config.addallowedorigin ("*"); // config.addallowedorigin ("http://domain1.com"); config.addallowedheader ("*"); config.addallowedMethod ("*"); Source.registerCorsConfiguration ("/api/**", config); FilterRegistrationBean Bean = New FilterRegistrationBean (New CorsFilter (Source)); Bean.SetOrder (0); // должен быть возвращен боб перед всеми фильтрами; }}Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.