Междомен
Ресурс инициирует HTTP-запрос поперечного сайта, когда ресурс, который он запрашивает, является другим доменным именем, чем первый ресурс, который он предоставляет.
Например, веб -приложение с доменным именем a (http://domainb.foo) представляет определенный ресурс изображения (http://domainb.foo/image.jpg) сайта доменного имени B (http://domainb.foo/image.jpg) через тег. Веб-приложение с доменным именем A приведет к тому, что браузер инициирует HTTP-запрос поперечного сайта. В сегодняшней веб-разработке использование HTTP-запросов Crossite для загрузки различных ресурсов (включая CSS, изображения, сценарии JavaScript и другие ресурсы) стало общим и популярным способом.
Как вы знаете, по соображениям безопасности браузеры ограничивают перекрестные запросы, инициированные в сценариях. Например, чтобы инициировать HTTP-запросы с использованием объекта xmlhttprequest, вы должны соблюдать политику одинакового происхождения. В частности, веб -приложение может и может использовать только объект Xmlhttprequest для инициирования HTTP -запросов на имя домена исходного домена, и не может инициировать запросы на любое другое доменное имя. Чтобы разработать более мощные, более богатые и более безопасные веб -приложения, разработчики стремятся стать более мощными и богаче, не теряя безопасности. Например, вы можете использовать xmlhttprequest для инициирования серийного HTTP-запроса. (Это описание поперечного домена неточно. Поперечная домен заключается не в том, что браузер ограничивает запросы на междомен, но запросы на междомен могут быть инициированы нормально, но результат перехватывается браузером. Лучший пример-это принцип CSRF Cross Domain. Запрос отправляется на сервер Backend, независимо от того, является ли он поперечный Domain или не затеплый. Домены HTTPS, такие как Chrome и Firefox.
Подробнее: https://developer.mozilla.org/zh-cn/docs/web/http/access_control_cors
Крос
CORS - это полное имя Cross Origin Sharing. Сервер должен только добавить соответствующую информацию заголовка ответа, чтобы клиент выпустил запросы Ajax Cross-Domain.
@Crossorigin
1. Непосредственное использование всех запросов на контроллере может быть междоменом, Origins = "*" означает, что все запросы могут быть запрошены.
@CrossOrigin(origins = "http://domain2.com", maxAge = 3600)@RestController@RequestMapping("/account")public class AccountController { @RequestMapping("/{id}") public Account retrieve(@PathVariable Long id) { // ... } @RequestMapping(method = RequestMethod.DELETE, path = "/{id}") public void remove (@pathvariable long id) {// ...}} 2. Используйте его в методе
@Crossorigin (maxage = 3600) @restcontroller @requestmapping ("/account") public class accountcontroller {@crossorigin ("http://domain2.com") @requestmapping ("/{id}") Общественный счет (@pathvariable long id) {// ...} @requestmapping (@pathvarible long id) {//} @requestpapping (methodydep. "/{id}") public void remove (@pathvariable long id) {// ...}}Другой метод:
Основная цель CorsFilter - добавить соответствующие заголовки информации, которые также могут быть достигнуты с помощью фильтра.
@ConfigurationPublic Class BeanConfiguration {@bean public corsfilter corsfilter () {final urlbasedcorsconfigurationsource urlbasedcorsconfigurationsource = new urlbasedcorsconfigurationsource (); окончательный corsconfiguration corsconfiguration = new corsconfiguration (); corsconfiguration.setallowedcredentials (true); corsconfiguration.addallowedorigin ("*"); corsconfiguration.addallowedheader ("*"); corsconfiguration.addallowedMethod ("*"); urlbasedcorsconfigurationsource.registercorsconfiguration ("/**", corsconfiguration); вернуть новый Corsfilter (urlbasdcorsconfigurationsource); }}Access-Control-Allow-Origin: клиентское доменное имя, которое разрешено получить доступ, например: http://web.xxx.com. Если *, это означает, что к нему можно получить доступ от любого домена, то есть никаких ограничений не требуется.
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.