Wenn ein Access-Control-Allow-Origin
HTTP-Header in der Antwort auf einen CORS-Preflight (Cross-Origin Resource Sharing) fehlt, bedeutet dies:
- Der Server unterstützt kein CORS? Oder,
- Der Server verweigert den Zugriff?
Wenn der Server CORS nicht unterstützt, scheint es offensichtlich, dass der Header fehlen wird.
Aber wenn es CORS unterstützt, heißt das, dass der Zugriff verweigert wird?
Und umgekehrt, was sollte ein Server, der CORS implementiert, tun, um dem Client mitzuteilen, dass der Zugriff aufgrund von CORS verweigert wird? Sollte es mit einem Status wie antworten 403 Forbidden
?
In jeder gefundenen Quelle wird erläutert, welche Header hinzugefügt werden, um einen domänenübergreifenden Zugriff zu ermöglichen. Es wird jedoch nicht erläutert, wie ein Zugriff verweigert werden kann.
** Bearbeiten: falsch gestellte Frage, meine schlechte, siehe Erklärung unten **
Der Fokus meiner Frage scheint im Vergleich zu dem, was ich erwartet hatte, nicht zum Thema zu gehören. In der Tat konzentriert sich eine Antwort auf die Serverkonfiguration, aber was für mich interessant war, war das Protokoll über HTTP.
Um genauer zu sein, habe ich die Frage gestellt, weil ich versucht habe, auf einen Server mit einer Cross-Anfrage zuzugreifen, und:
- Der Server enthielt die CORS-Header nicht, während mein XMLHttpRequest sie enthielt
- Der Browser hat Cross-Requests von
swf
Medien akzeptiert - Ich habe den Referrer der Medien überprüft und es ist tatsächlich ein anderer Iframe als das Ziel der Anfragen
- Ich wusste nicht einmal, ob der Server CORS implementiert hat oder nicht
- Ich besitze den Server nicht
Mein geringes Verständnis von CORS in HTTP und die Tatsache, dass eine Art Cross-Requests akzeptiert wurden, veranlassten mich zu der Frage, ob der Server meine Requests ablehnte und was ich falsch gemacht habe.
Ich werde eine Antwort posten, da ich glaube, dass ich sie seitdem gelöst habe.