Verständnisfrage zu CORS
Kunibert
- webserver
Hallo,
Habe eine Grundsatz-/Verständnisfrage zum Thema CORS.
Verstehe ich das richtig, dass wenn ich Inhalte einer dritte Webseite fetch
n will, dieser Versuch von dieser Webseite Dritter dann verhindert wird (und ich daher nur über offiziell von dieser Webseite freigegebenen APIs kommunizieren kann)?
--
(...und an das Thema anschließend: Empfehlungen bezüglich kurz- und bündige Einführungen in das Erstellen von APIs?)
Danke!
Hallo Kunibert,
Scripte und Medien kann man von überallher laden (per passendem HTML Tag).
Datenzugriff per fetch oder XMLHttpRequest muss von der Fremdseite per Header erlaubt werden, ja. Dein Browser kontrolliert das. Heißt: Wenn Du auf deinem Server ein PHP Script als Proxy zwischenschaltest, kannst Du das umgehen.
Rolf
Hallo, danke für die Info.
Leuchtet mit Hinblick auf Datensicherheit eigentlich ein.
Vielleicht Anschlussfrage:
Bin ja eher Frontend unterwegs und einfach zu blöd, ein DOMDocument()
zu parsen (geht mittlerweile um PHP 😀).
Wenn ich das richtig verstanden habe, bietet PHP analog zu JavaScript getElementById
, aber kein getElementsByClassName
.
Ich lade also meine Seite
$domDoc = new DOMDocument();
@$domDoc->loadHTMLFile( 'meine-seite.html' );
$xPath = new DOMXPath($domDoc);
$item = $xPath->query("//div[@class='item']");
Jetzt hat jedes dieser $item
div
s eine Menge Unter div
s, ich möchte nur ein $item
div
"behalten" und näher behandeln, nämlich wenn ein UnterUnterUnterDiv
ein Element mit class="foo"
und einem einzigartigen title
aufweist.
...kann ich mit xPath nicht direkt ansteuern, da ich im obrigen Falle auch ein ANDERES [direktes] Child von $item
behandeln will.
foreach ($item->children() as $child) {
print_r($child);
}
// Fatal error: Uncaught Error: Call to undefined method DOMElement::children()
forEach($item->childNodes as $childNode) {
print_r($childNode);
}
// Würde sogar funktionieren, ...aber dann weiter?
ODER MIT ANDEREN WORTEN
Ich suche nach dem PHP Äquivalent von JavaScript's
const meineVar = document.querySelector(".foo");
if (meineVar.title === ...
So, habe mich redlich bemüht, mich möglichst unklar auszudrücken.
Danke für eure Hilfe!
Kunibert
@@Kunibert
Vielleicht Anschlussfrage:
Nö.
Bin ja eher Frontend unterwegs und einfach zu blöd, ein
DOMDocument()
zu parsen (geht mittlerweile um PHP 😀).
Für ein neues Thema machst du besser einen neuen Thread mit entsprechendem Titel auf.
🖖 Живіть довго і процвітайте
ein DOMDocument() zu parsen (geht mittlerweile um PHP 😀).
Ich frage mal:
Hm.
Das kann natürlich Zufall sein, aber wenn $Kunibert == $Heiko
ist, wäre es hilfreich, das zu wissen, denn manchmal ergibt sich aus solchen Nebeninformationen die Lösung.