tester0001: Chrome liefert kein Ajax Ergebnis

Hey alle zusammen,

ich würde gern eine Web-API nutzen und die betreffenden Informationen über ein Ajax Request laden. Leider musste ich feststellen, dass mein Ajax Request nur im IE funktioniert. In Chrome passiert leider gar nichts, aber über die Fehlermeldung in der Console habe ich herausgefunden, dass es mit same origin policy zu tun hat. Ich habe zwar herausgefunden, dass man dafür CROS nutzen kann / soll, aber leider keine Anleitung oder Erklärung, die mir geholfen hat.

Ich hoffe einer von Euch kann mir verraten in wie weit ich folgendes Fragment verändern muss, damit es auch in Chrome läuft :)

<script>
        function Hintergrundaufruf(URL) 
        {
            var xhttp, xmlDoc, txt, x, i;
            xhttp = new XMLHttpRequest();
            xhttp.onreadystatechange = function() 
            {
                if (xhttp.readyState == 4 && xhttp.status == 200) 
                {
                    xmlDoc = xhttp.responseXML;
                    txt = "";
                    x = xmlDoc.getElementsByTagName("suggestion");
                    for (i = 0; i < x.length; i++) 
                    {
                        txt = txt + x[i].childNodes[0].nodeValue + "<br>";
                    }
                    if (i>0)
                    {
                        document.getElementById("Eingabe").style.backgroundColor = "#ff1493";
                    }
                    document.getElementById("punkt").innerHTML = txt;
                }
            };
            xhttp.open("GET", URL, true);
            xhttp.send();
        }
    </script>
  1. über die Fehlermeldung in der Konsole habe ich herausgefunden, dass es mit same origin policy zu tun hat. Ich habe zwar herausgefunden, dass man dafür CROS nutzen kann / soll, aber leider keine Anleitung oder Erklärung, die mir geholfen hat.

    Du hättest besser nach CORS gesucht und dann zum Beispiel dieses gefunden: https://de.wikipedia.org/wiki/Cross-Origin_Resource_Sharing

    Das Problem liegt nicht in deinem Code, sondern daran, dass per Skript generell von einer Webseite unter URL A keine Sachen von einer URL B abgerufen werden dürfen. Dieses Recht einräumen muss URL B. Du wirst also das Problem nicht in deinem Code, sondern auf Seiten der abzurufenden URL beheben müssen (lassen).

    1. Schade aber warum funktioniert es dann im IE aber nicht in Chrome?

      Trotzdem:Vielen Dank !

      1. Hallo tester0001,

        Schade aber warum funktioniert es dann im IE aber nicht in Chrome?

        Die Same-Origin Policy gilt prinzipiell auch im IE, mit einer Ausnahme: beide Sites sind in einer hohen Trust Zone.

        Aber so „aus der Ferne” kann man das schwer beurteilen, was genau du gemacht hast.

        LG,
        CK