Cos'è Cors?
CORS è uno standard W3C, che sta per "Cross-origin resource sharing" (condivisione delle risorse tra origini crosate). Permette al browser di effettuare richieste XMLHttpRequest ai server cross-origin, superando così la limitazione secondo cui AJAX può essere usato solo in modo omogeneo.
1. Introduzione
CORS richiede sia il supporto sia per browser che per server. Attualmente, tutti i browser supportano questa funzione e il browser IE non può essere inferiore a IE10.
L'intero processo di comunicazione CORS viene completato automaticamente dal browser e non richiede la partecipazione dell'utente. Per gli sviluppatori, la comunicazione CORS non è diversa dalla comunicazione omologa AJAX, e il codice è esattamente lo stesso. Una volta che il browser scopre che una richiesta AJAX attraversa la sorgente, aggiungerà automaticamente alcune informazioni aggiuntive sull'intestazione, e a volte una richiesta aggiuntiva, ma l'utente non le percepirà.
Pertanto, la chiave per ottenere la comunicazione CORS è il server. Finché il server implementa l'interfaccia CORS, può comunicare tra le sorgenti.
In effetti, i programmi server web (come ASP.NET o PHP, ecc.) non possono distinguere e non gestiscono se una richiesta Http in ingresso sia una richiesta Ajax cross-domain.CORS è progettato per risolvere questo problema, e lo standard CORS personalizzato W3C offre ai browser un meccanismo per consentire richieste Ajax cross-domain.
2: Codice di richiesta JS Ajax nativo
Dato che non voglio fare riferimento a jQuery, ho incapsulato i seguenti metodi con js, come segue:
Ajax richiede test di interfaccia e trova un errore come segue:
Tre: Imposta un metodo controller per consentire il cross-domain
Così cosìTutti sono ammessiIl metodo controller o API è cross-domain, nel file web.configsystem.webServerLa seguente configurazione viene aggiunta sotto il nodo:
Quanto sopra non è il risultato che volevamo! Se vogliamo permettere solo a un nome di dominio di accedere a una delle nostre interfacce tra domini, dobbiamo definire una caratteristica che assomigli a questa:
Il codice per impostare i permessi di accesso cross-domain è questo paragrafo HttpContext.Response.AppendHeader("Access-Control-Allow-Origin", origin);
Impostiamo le caratteristiche sopra il metodo controller come segue:
Riavviiamo la richiesta Ajax con il risultato mostrato qui sotto:
Le risorse dell'interfaccia API provenienti dagli altri nostri siti web possono essere accessibili con successo.
(Fine)
|