Ergebnis 1 bis 4 von 4
Like Tree2Likes
  • 2 Post By j-l-n

Thema: Cross-Origin Resource Sharing (CORS)

  1. #1
    j-l-n Guest

    Cross-Origin Resource Sharing (CORS)

    CORS (Cross-Origin Resource Sharing) ermöglicht es, mit JavaScript auf Websites zuzugreifen, die auf anderen Domains liegen. Normalerweise ist dies nicht möglich, da es durch die Same-Origin-Policy (SOP) verhindert wird.

    Die Browserunterstützung ist in allen Browsern relativ gut. Einzige Ausnahmen bilden der Internet Explorer 8 und 9, da sie keine XMLHTTPRequests, sondern XDomainRequests benutzen.
    => XDomainRequest - Restrictions, Limitations and Workarounds - IEInternals - Site Home - MSDN Blogs

    Eine ausführliche Anleitung, basierend auf "purem" JavaScript, die auch den IE 8/9 (XDomainRequests) unterstützt:
    Using CORS - HTML5 Rocks


    Ein simples Beispiel:

    Serverseitig müssen auf der anderen Webseite, von der Inhalt geladen werden soll, folgende Header mitgesendet werden, um CORS zu ermöglichen:
    PHP-Code:
    header("Access-Control-Allow-Origin: example.com"); //nur Requests von den angegeben Domains aus erlauben
    header("Access-Control-Allow-Credentials: true"); //"Credentials" (Cookies, ...) mitsenden
    header("Access-Control-Allow-Methods: GET, POST"); //erlaubte HTTP-Methoden 
    Auf Client-Seite setzen wir auf die jQuery Ajax-API, die uns das Ganze sehr einfach macht:
    HTML-Code:
    <script type="text/javascript" src="https://code.jquery.com/jquery-latest.min.js">
    
    <script type="text/javascript">
    $.ajax({
    
     url: 'http://another-domain.example.org/script.php', //URL, an die der Request geschickt werden soll
    
     type: "POST", //Typ des Requests (z.B. GET oder POST)
    
     contentType: 'text/plain', //Content-Type festlegen
    
     xhrFields:{
       withCredentials = true //Cross-Domain Request ermöglichen
     },
    
     success: function(data){
       alert("HTML geladen von " + url + ": \n\n" + data); //bei Erfolg geladenen Inhalt ausgeben
     },
    
     error: function(e){
       alert("Fehler!");
     }
    
    });
    </script>
    Geändert von j-l-n (01-06-2014 um 10:51 Uhr) Grund: Ergänzung
    rico2009 and mikdoe like this.

  2. #2
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.725

    AW: Cross-Origin Resource Sharing (CORS)

    Sagst du noch dazu, auf welchem der beiden Server die Header gesetzt werden müssen?
    Das deutsche Javascript Forum http://forum.jswelt.de http://forum.jswelt.de/images/logoJsWeltForumV4_32x22.png
    Sorry wenn ich manchmal ohne Hallo und nur klein schreibe! Dann bin ich nicht unfreundlich sondern mit nervigem kleinem Touch Tablet zugange

  3. #3
    j-l-n Guest

    AW: Cross-Origin Resource Sharing (CORS)

    Zitat Zitat von mikdoe Beitrag anzeigen
    Sagst du noch dazu, auf welchem der beiden Server die Header gesetzt werden müssen?
    Klar, ich hab's oben ergänzt. Logischerweise auf dem fremden Server - damit wird verhindert, dass nicht einfach jede Seite per CORS auf den eigenen Server zugreifen kann, sondern nur die explizit erlaubten.

  4. #4
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.725

    AW: Cross-Origin Resource Sharing (CORS)

    Das deutsche Javascript Forum http://forum.jswelt.de http://forum.jswelt.de/images/logoJsWeltForumV4_32x22.png
    Sorry wenn ich manchmal ohne Hallo und nur klein schreibe! Dann bin ich nicht unfreundlich sondern mit nervigem kleinem Touch Tablet zugange

Ähnliche Themen

  1. Same Origin Policy mit Subdomain umgehen
    Von awarken im Forum JavaScript
    Antworten: 6
    Letzter Beitrag: 09-11-2010, 01:13
  2. Frage zu Same Origin Policy
    Von bis im Forum Allgemeines
    Antworten: 45
    Letzter Beitrag: 22-10-2010, 13:54
  3. Signed JS und Same Origin Policy
    Von Toxiro im Forum JavaScript
    Antworten: 46
    Letzter Beitrag: 20-07-2008, 14:08
  4. Antworten: 1
    Letzter Beitrag: 22-08-2005, 20:09
  5. File sharing
    Von kakalake im Forum Serverseitige Programmierung
    Antworten: 0
    Letzter Beitrag: 17-04-2001, 13:44

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •