Announcement

Collapse
No announcement yet.

AJAX - Abfrage externer XML Wetterdaten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • AJAX - Abfrage externer XML Wetterdaten

    Hallo

    Vielleich hat jemand von euch eine Idee oder Hinweis.

    Ich möchte Daten in Form von XML von Google Wetter per ajax abholen. (kein jquery)

    Mit eine XML File File auf meinen Rechner klappt es und liefern ein XML Object zurück.

    Bei externen Daten bekomme ich
    xmlhttp.status=0
    und beendet die function.



    Code:
    <html>
    <body>
    
    <script type="text/javascript">
    var xmlhttp;
    var xmlDoc;
    function callback(xhr)
    {
        xmlDoc = xhr.responseXML;
    	alert(xmlDoc);
    }
    
    if (window.XMLHttpRequest)
    {
        xmlhttp = new XMLHttpRequest();
    }
    else
    {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    
    xmlhttp.open("GET", "http://www.google.com/ig/api?weather=london&hl=en", true);
    
    xmlhttp.onreadystatechange = function ()
    {
        if (xmlhttp.readyState != 4) return;
        if (xmlhttp.status != 200 && xmlhttp.status != 304) return;
        callback(xmlhttp);
    };
    
    xmlhttp.send(null);
    
    </script>
    
    </body>
    </html>

    Vielen Dank im Voraus

  • #2
    Mal die Fehlerauswertung weiter ausprogrammieren und nicht einfach "return"

    Status 0: request not initialized

    Prüfe Firewall, Virenscanner, Router und ähnliches. Wahrscheinlich hastg du eine Firewall laufen, die zwar die Freibgabe auf Port 80 für den Browser hat, aber nicht für deine Anwendung
    Zuletzt editiert von Christian Marquardt; 28.08.2011, 10:20.
    Christian

    Comment


    • #3
      Erstmal vielen Dank für die schnelle Antwort.

      Dein Vorschlag "Fehlerauswertung weiter ausprogrammieren"
      welche Funktion von XMLHttpRequest währe das?

      Firewall dürfte nicht das Problem sein.

      Comment


      • #4
        xmlhttp.status=0 habe ich wohl in deinem ersten Post nicht gesehen. Insofern spricht vieles dafür, dass jemand den Request blockt, auch wenn du
        http://www.google.com/ig/api?weather=london&hl=en

        über den Brwoser aufrufen kannst
        Christian

        Comment


        • #5
          Frage:
          Macht es für die Firewall eine Unterschied ob ich
          http://www.google.com/ig/api?weather=london&hl=en

          direkt am Browser aufrufe (klappt ja)

          oder per ajax.

          Kann es am "same origin policy" liegen?
          Zuletzt editiert von mr_sol; 28.08.2011, 11:27.

          Comment


          • #6
            Macht es für die Firewall eine Unterschied ob ich
            http://www.google.com/ig/api?weather=london&hl=en

            direkt am Browser aufrufe (klappt ja)

            oder per ajax.
            Nein, wenn deine Anwendung auch in dem Browser läuft
            Christian

            Comment


            • #7
              Du lässt das doch über einen Webserver laufen oder lokal mit file://
              Christian

              Comment


              • #8
                per

                http://localhost/

                Kann es am "same origin policy" liegen?
                Die XML Daten liegen ja auf einen anderen host als die HTML/AJAX Seite.

                (http://molily.de/js/sicherheit.html#same-origin-policy)

                Comment


                • #9
                  ja, das wird es wohl

                  Lade die Daten serverseitig ohne Ajax und zeige sie dann an
                  Christian

                  Comment


                  • #10
                    Denkst du das hier der Lösungsansatz liegt?


                    The Cross-Origin Resource Sharing method:
                    http://stackoverflow.com/questions/3...-origin-policy

                    Leider verstehe ich nicht "XDomainRequest"

                    Comment


                    • #11
                      musst du probieren....
                      Christian

                      Comment


                      • #12
                        Hallo Christian! Nochmals Danke für die Hilfe. Wenn ich eine Lösung habe poste ich Sie hier.

                        Comment

                        Working...
                        X