soeinuser: AJAX RSS FEED???

So, ich hab ein Script, das aber nicht funktioniert, ich hab schon alles versucht, jedoch bekomm ich ständig die fehlermeldung:"zugriff verweigert" WISO hergottnochmal ist mein Zugriff verweigert? kann mir das vieleicht jemand sagen???? kenne mich nicht so gut aus mit RSS feeds.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Unbenanntes Dokument</title>
</head>

<body>

<script language="javascript" type="text/javascript">//<![CDATA[

ajaxRequest = function(u,f,m,b,h,s)
{
    this.url      = u;
    this.wState   = f || function() { };
    this.method   = m || "GET";
    this.body     = b || null;
    this.headers  = h || false;
    this.sync     = s || true;
    this.abortReq = false;

this.req = (window.XMLHttpRequest)
           ?
           new XMLHttpRequest()
           :
           ((window.ActiveXObject)
           ?
           new ActiveXObject("Microsoft.XMLHTTP")
           :
           false
           );

this.doRequest = function()
    {
        this.req.open(this.method,this.url,this.sync);
        if (this.headers)
        {
            for (var i=0; i<this.headers.length; i+=2)
            {
                this.req.setRequestHeader(
                    this.headers[i],this.headers[i+1]
                );
            }
        }
        this.req.onreadystatechange = this.wState;
        (!this.abortReq) ? this.req.send(this.body) : this.req.abort();
    }
}

var showHeadline = function(rss)
{
    var news = document.getElementById("rss");
    var root  = rss.getElementsByTagName("channel")[0];
    var items = root.getElementsByTagName("item");
    for (var i=0 ; i<items.length; i++)
    {
     var titel = items[i].getElementsByTagName("title")[0].firstChild.nodeValue;
        var anker = items[i].getElementsByTagName("link")[0].firstChild.nodeValue;
        var elm = document.createElement("li");
        news.appendChild(elm);
        var a = document.createElement("a");
        a.setAttribute("href", anker);
        a.appendChild(
              document.createTextNode(titel)
        );
        elm.appendChild(a);
    }
}

var orfunction = function()
    {
        if (xmlhttp.req.readyState==4)
        {
            if (xmlhttp.req.status == 200)
            {
                try
                {
                    if (netscape.security.PrivilegeManager.enablePrivilege)
                    {
                        netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');
                    }
                }
                catch (err) { }
                showHeadline(xmlhttp.req.responseXML);
            }
        }
    };

var xmlhttp = new ajaxRequest("http://www.blick.ch/news/schweiz/rss.xml", orfunction);
xmlhttp.doRequest();

//]]>
</script>
<ul id="rss"></ul>
</body>
</html>

  1. Moin!

    So, ich hab ein Script, das aber nicht funktioniert, ich hab schon alles versucht, jedoch bekomm ich ständig die fehlermeldung:"zugriff verweigert" WISO hergottnochmal ist mein Zugriff verweigert? kann mir das vieleicht jemand sagen????

    Simpel: Mit Javascript (auch mit AJAX) darfst du nur auf die eigene Domain (die, wo die HTML-Seite herkommt) zugreifen - externe Webserver sind für Javascript tabu, da kommt dann immer diese Meldung "Zugriff verweigert".

    - Sven Rautenberg

    --
    "Love your nation - respect the others."
  2. Hi soeinuser,

    var xmlhttp = new ajaxRequest("http://www.blick.ch/news/schweiz/rss.xml", orfunction);

    Liegt das vorliegende HTML-Dokument auf www.blick.ch? Wenn nein, dann informier dich mal über "Cross Domain Scripting". Übrigens liefert auch der 4. Treffer bei einer Google-Suche nach ajax zugriff verweigert bereits eine Erklärung.

    MfG, Dennis.

    --
    Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
    Patch zur Verwendung von PATHINFO in JLog
    Jeder kann wütend werden, das ist einfach. Aber wütend auf den Richtigen zu sein, im richtigen Maß, zur richtigen Zeit, zum richtigen Zweck und auf die richtige Art, das ist schwer. (Aristoteles)
    1. hi,

      Wenn nein, dann informier dich mal über "Cross Domain Scripting".

      Bzw. Same Origin Policy, dürfte m.E. das gebräuchlichere Stichwort sein.

      gruß,
      wahsaga

      --
      /voodoo.css:
      #GeorgeWBush { position:absolute; bottom:-6ft; }
      1. Hi wahsaga,

        Bzw. Same Origin Policy, dürfte m.E. das gebräuchlichere Stichwort sein.

        Ah, da ist doch das Stichwort, woran ich mich so vergeblich zu erinnern versuchte ;-)

        MfG, Dennis.

        --
        Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
        Patch zur Verwendung von PATHINFO in JLog
        Das ist eine Ehrlichkeit, die an Blödheit grenzt. (Thomas Gottschalk)
  3. Hi

    Benutztst du den Mozilla? Der blockt AFAIK lokale HTTP-Requests. Google mal nach der Fehlermeldung, du wirst den Work-a-round schnell finden.

    BTW: Ich hab einen einfachen Feed-Parser geschrieben, der in meinem Dashboard-Widget enthalten ist. Das Teil läuft zur Zeit nur im Safari und braucht noch eine Runde Überarbeitung (vor allem die Webseite! War halt quick&dirrrty). Aber anschauen kannst du es dir ja mal: http://inews.signrain.com. Downloaden und ein wenig Quellcode lesen. Eine bessere Version, wohl aber auch nur für Safari, kommt in ca. zwei Wochen.

    Gruss

    Tom2