Kunibert: Verständnisfrage zu CORS

Hallo,

Habe eine Grundsatz-/Verständnisfrage zum Thema CORS.

Verstehe ich das richtig, dass wenn ich Inhalte einer dritte Webseite fetchn 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!

  1. 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

    --
    sumpsi - posui - obstruxi
    1. 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 divs eine Menge Unter divs, 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

      1. @@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.

        🖖 Живіть довго і процвітайте

        --
        When the power of love overcomes the love of power the world will know peace.
        — Jimi Hendrix
      2. ein DOMDocument() zu parsen (geht mittlerweile um PHP 😀).

        Ich frage mal:

        https://forum.selfhtml.org/self/2022/oct/08/sonder-wie-satzzeichen-werden-deformiert-dargestellt/1802547#m1802547

        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.