Was ist Cors?
CORS ist ein W3C-Standard, der für "Cross-origin resource sharing" steht. Er ermöglicht es dem Browser, XMLHttpRequest-Anfragen an Cross-Origin-Server zu stellen und so die Einschränkung zu überwinden, dass AJAX nur homogen verwendet werden kann.
1. Einleitung
CORS benötigt sowohl Browser- als auch Serverunterstützung. Derzeit unterstützen alle Browser diese Funktion, und der IE-Browser kann nicht niedriger als IE10 sein.
Der gesamte CORS-Kommunikationsprozess wird automatisch vom Browser abgeschlossen und erfordert keine Benutzerbeteiligung. Für Entwickler unterscheidet sich die CORS-Kommunikation nicht von der homologen AJAX-Kommunikation, und der Code ist genau derselbe. Sobald der Browser feststellt, dass eine AJAX-Anfrage die Quelle überschreitet, fügt er automatisch zusätzliche Header-Informationen hinzu und manchmal eine weitere Anfrage, aber der Nutzer wird sie nicht spüren.
Daher ist der Schlüssel zur CORS-Kommunikation der Server. Solange der Server die CORS-Schnittstelle implementiert, kann er über Quellen hinweg kommunizieren.
Tatsächlich können Webserverprogramme (wie ASP.NET oder PHP usw.) nicht unterscheiden und verwalten nicht, ob eine eingehende HTTP-Anfrage eine domänenübergreifende Ajax-Anfrage ist.CORS ist darauf ausgelegt, dieses Problem zu lösen, und der W3C-Custom-CORS-Standard gibt Browsern einen Mechanismus, um Ajax-Cross-Domain-Anfragen zu ermöglichen.
2: Nativer JS-Ajax-Anforderungscode
Da ich jQuery nicht referenzieren möchte, habe ich die folgenden Methoden mit js wie folgt kapselt:
Ajax fordert Schnittstellentests an und findet einen Fehler wie folgt:
Drittens: Setzen Sie eine Controller-Methode, die domänenübergreifende Systeme erlaubt
MittelmäßigAlle sind erlaubtDie Controller- oder API-Methode ist domänenübergreifend, in der Web.config-Dateisystem.webServerDie folgende Konfiguration wird unter dem Knoten hinzugefügt:
Das oben Genannte ist nicht das Ergebnis, das wir wollten! Wenn wir nur einem Domainnamen erlaubt wollen, auf eine unserer Schnittstellen über verschiedene Domänen hinweg zuzugreifen, müssen wir ein Merkmal definieren, das so aussieht:
Der Code zur Einstellung von domänenübergreifenden Zugriffsberechtigungen lautet dieser Absatz: HttpContext.Response.AppendHeader ("Access-Control-Allow-Origin", origin);
Wir legen die Eigenschaften über die Steuerungsmethode wie folgt fest:
Wir initiieren die Ajax-Anfrage erneut mit dem Ergebnis wie unten gezeigt:
API-Schnittstellenressourcen von unseren anderen Webseiten können erfolgreich abgerufen werden.
(Ende)
|