¿Qué es Cors?
CORS es un estándar W3C, que significa "Cross-origin resource sharing" (Intercambio de recursos entre orígenes). Permite al navegador realizar peticiones XMLHttpRequest a servidores de origen cruzado, superando así la limitación de que AJAX solo puede usarse de forma homogénea.
1. Introducción
CORS requiere soporte tanto para navegadores como para servidores. Actualmente, todos los navegadores soportan esta función, y el navegador IE no puede estar por debajo de IE10.
Todo el proceso de comunicación CORS se completa automáticamente desde el navegador y no requiere la participación del usuario. Para los desarrolladores, la comunicación CORS no es diferente de la comunicación AJAX homóloga, y el código es exactamente el mismo. Una vez que el navegador detecta que una petición AJAX cruza la fuente, añadirá automáticamente información adicional en el encabezado y, a veces, una petición adicional, pero el usuario no lo notará.
Por lo tanto, la clave para lograr la comunicación CORS es el servidor. Mientras el servidor implemente la interfaz CORS, puede comunicarse entre fuentes.
De hecho, los programas de servidor web (como ASP.NET o PHP, etc.) no pueden distinguir ni gestionar si una solicitud Http entrante es una solicitud Ajax multidominio.CORS está diseñado para resolver este problema, y el estándar CORS personalizado W3C ofrece a los navegadores un mecanismo para permitir solicitudes Ajax entre dominios.
2: Código nativo de solicitud JS Ajax
Como no quiero referenciar jQuery, encapsulé los siguientes métodos con js, de la siguiente manera:
Ajax solicita pruebas de interfaz y encuentra un error del siguiente tipo:
Tres: Establecer un método controlador para permitir el cross-domain
Más o menosTodos están permitidosEl método controlador o API es multidominio, en el archivo web.configsystem.webServerLa siguiente configuración se añade bajo el nodo:
¡Lo anterior no es el resultado que queríamos! Si queremos permitir que solo un nombre de dominio acceda a una de nuestras interfaces entre dominios, necesitamos definir una característica que se parezca a esta:
El código para establecer permisos de acceso entre dominios es este párrafo HttpContext.Response.AppendHeader("Access-Control-Allow-Origin", origin);
Establecemos las características sobre el método controlador de la siguiente manera:
Iniciamos la solicitud Ajax de nuevo con el resultado que se muestra a continuación:
Se puede acceder con éxito a los recursos de la interfaz API de nuestros otros sitios web.
(Fin)
|