[JavaScript] Cross Domain, XMLHttpRequest, Header Problem

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Mirak, 3. August 2013 .

  1. 3. August 2013
    Cross Domain, XMLHttpRequest, Header Problem

    Hey Leute

    Ich habe ein Problem mit der Same Origin Policy. Ich habe hier ein kleines Script, welches mit einem XMLHttpRequest auf eine andere Domain zugreifen will. Hier ein Code-Ausschnitt:

    Datei 1.html auf der Domain Home

    Code:
    xmlhttp.open("POST","http://www.domain2.de/1.php",true); //wenn ich hier auf dem gleichen Server bleibt, dann klappt alles
    xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    xmlhttp.send("fname=Henry&lname=Ford");
    Datei 1.php auf der Domain http://www.domain2.de

    Code:
    <?php
    echo $_POST['fname'];
    echo '<br />';
    echo $_POST['lname'];
    ?>
    Safari gibt mir folgende Fehlermeldung:

    Code:
    XMLHttpRequest cannot load http://www.domain2.de/1.php. Origin http://www.domain1.de is not allowed by Access-Control-Allow-Origin.
    Meine Frage ist jetzt: Wie kann ich domain2.de sagen, dass Daten von domain1.de akzeptiert werden soll (oder anders herum). Ich hoffe, ihr könnt mir helfen.

    Danke, Gruß Mirak
     
  2. 3. August 2013
    AW: Cross Domain, XMLHttpRequest, Header Problem

    HTTP access control (CORS)

    Mit PHP:
    PHP:
    header 'Access-Control-Allow-Origin: http://domain2.de'  );
     
  3. 13. August 2013
    AW: Cross Domain, XMLHttpRequest, Header Problem

    Mit PHP habe ich es auch schon zum Laufen bekommen. Aber leider läuft auf diesem Webserver kein PHP. Genau genommen läuft der Server auf einem Microcontroller und ist deswegen sehr abgespeckt.

    Vielen Dank
     
  4. 13. August 2013
    Zuletzt bearbeitet: 13. August 2013
    AW: Cross Domain, XMLHttpRequest, Header Problem

    Wenn du auf dem System die Anfrage entgegen nehmen kannst, dann muss da ja irgendeine Art von HTTP-Server laufen.

    Dort einfach
    Code:
    Access-Control-Allow-Origin: *
    in den Buffer schreiben, dann kann dein Script drauf zugreifen.

    * = Wildcard, du kannst das auch strenger definieren wie in Nanobytes Beitrag.

    Wenn du die Möglichkeit nicht hast, dann musst du die Anfrage über deinen Server schleifen lassen.
    Client -(Anfrage an)-> Server -(Anfrage an)-> MC
    MC -(Antwort an)-> Server -(Antwort an)-> Client
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.