Intermedio
Un recurso inicia una solicitud HTTP del sitio cruzado cuando un recurso de TI solicita es un nombre de dominio diferente al primer recurso que proporciona.
Por ejemplo, una aplicación web con nombre de dominio A (http://domainb.foo) presenta un cierto recurso de imagen (http://domainb.foo/image.jpg) del sitio de nombre de dominio B (http://domainb.foo/image.jpg) a través de una etiqueta. La aplicación web con el nombre de dominio A hará que el navegador inicie una solicitud HTTP de sitio cruzado. En el desarrollo web actual, el uso de solicitudes HTTP entre sitios para cargar varios recursos (incluidas CSS, imágenes, scripts de JavaScript y otros recursos) se ha convertido en una forma común y popular.
Como saben, por razones de seguridad, los navegadores restringen las solicitudes de sitios cruzados iniciadas en los scripts. Por ejemplo, para iniciar solicitudes HTTP utilizando el objeto xmlhttprequest, debe cumplir con la política del mismo origen. Específicamente, una aplicación web puede y solo puede usar el objeto xmlhttprequest para iniciar solicitudes HTTP al nombre de dominio de origen que carga, y no puede iniciar solicitudes a ningún otro nombre de dominio. Para desarrollar aplicaciones web más potentes, más ricas y seguras, los desarrolladores están ansiosos por ser más potentes y ricos sin perder seguridad. Por ejemplo, puede usar XMLHTTPREQUEST para iniciar una solicitud HTTP del sitio cruzado. (Esta descripción del dominio cruzado es inexacto. El dominio cruzado no es que el navegador restrinja las solicitudes de dominio cruzado, pero las solicitudes de dominio cruzado se pueden iniciar normalmente, pero el resultado es interceptado por el navegador. Dominios HTTPS, como Chrome y Firefox.
Más: https://developer.mozilla.org/zh-cn/docs/web/http/access_control_cors
Cros
Cors es el nombre completo de recursos de origen cruzado. El servidor solo necesita agregar información de encabezado de respuesta relevante para permitir que el cliente emita solicitudes de dominio cruzado AJAX.
@Crossorigin
1. Usar directamente todas las solicitudes en el controlador pueden ser cruzados, origins = "*" significa que se pueden solicitar todas las solicitudes.
@Crossorigin (origins = "http://domain2.com", maxage = 3600)@restcontroller@requestMapping ("/cuenta") public class AccountController {@RequestMapping ("/{ID}") Public Cuenta Remieve (@PathVariable Long Id) {// ...} @RequMapping (Methode = Method = Method = Method = Method = Method = Method = SELtmethod. "/{id}") public void Remete (@PathVariable Long Id) {// ...}} 2. Úselo en el método
@Crossorigin (maxage = 3600) @RestController @requestmapping ("/cuenta") public class AccountController {@crossorigin ("http://domain2.com") @RequestMapping ("/{id}") Recuperación de cuenta pública (@PathVariable Long Id) {// ...} @RequestMapping (Method = SELTOT. "/{id}") public void Remete (@PathVariable Long Id) {// ...}}Otro método:
El objetivo principal de Corsfilter es agregar encabezados de información relevantes, que también se pueden lograr usando el filtro.
@ConfigurationPublic Class BeanCiguration {@Bean public Corsfilter corsfilter () {Final URLBasedCorsConfigurationSource UrlBasedCorsConfigurationSource = new URLBasedCorsConfigurationSource (); final CorSconfiguration corsconfiguration = new CorSconfiguration (); Corsconfiguration.SetAllowedCredentials (verdadero); corsconfiguration.addallowedorigin ("*"); corsconfiguration.addallowedheader ("*"); corsconfiguration.addallowedmethod ("*"); URLBasedCorsConfigurationSource.registerCorsConfiguration ("/**", corsconfiguration); devolver nuevo Corsfilter (URLBasedCorsConfigurationSource); }}Access-Control- Allow- Origin: el nombre de dominio del cliente que puede acceder, por ejemplo: http://web.xxx.com. Si *, significa que se puede acceder desde cualquier dominio, es decir, no se requieren restricciones.
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.