ilch Forum » Allgemein » HTML, PHP, SQL,... » RDF,XML & Cross Origin

Geschlossen
  1. #1
    User Pic
    mic_pt Mitglied
    Registriert seit
    03.01.2008
    Beiträge
    319
    Beitragswertungen
    19 Beitragspunkte
    Moin Moin,

    ich bin gerade dabei eine Admin page für Linux Server Betreiber zu erstellen. Ich wollte als sinnvolle Ergänzung die Sicherheits Bulletins auf der Seite anzeigen, habe allerdings das Problem das ich es nicht hinbekomme *g*

    URL SicherheitsBulletin : externer Link

    Es handelt sich um eine XMl/RDF Datei. Diese soll beim Aufruf des Moduls abgerufen und als Liste angezeigt werden. Ich habe versucht das ganze mit (kopiert und minimal angepasst):

    <script type="text/javascript">
    
        $(document).ready(function()
          {
            $.get('https://www.debian.org/security/dsa', function(d){
            $('body').append('<h1> Recommended Web Development Books </h1>');
            $('body').append('<dl />');
    
            $(d).find('book').each(function(){
    
                var $book = $(this);
                var title = $book.attr("title");
                var description = $book.find('description').text();
                var imageurl = $book.attr('link');
    
                var html = '<dt> <img class="bookImage" alt="" src="' + imageurl + '" /> </dt>';
                html += '<dd> <span class="loadingPic" alt="Loading" />';
                html += '<p class="title">' + title + '</p>';
                html += '<p> ' + description + '</p>' ;
                html += '</dd>';
    
                $('dl').append($(html));
    
                $('.loadingPic').fadeOut(1400);
            });
        });
    });
    </script>


    zu testen, bekam aber ein

    ZitatZitat

    XMLHttpRequest cannot load externer Link No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'externer Link is therefore not allowed access.

    .

    Nach etwas Googlen hab ich einige verschiedene Tips ausprobiert :

    ZitatZitat
    <?php header('Access-Control-Allow-Origin: *'); ?>


    hab ich nicht hinbekommen - pack ich es in die Modul.php sagt mir Ilch das der Header schon gesetzt ist.

    JSONP hab ich auch probiert aber da müsste ich mich erstmal in die materie einarbeiten. hat evtl. einer von euch Pro´s einen Ansatz der einfach wäre?


    thx in advance

    mic
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    mic_pt Mitglied
    Registriert seit
    03.01.2008
    Beiträge
    319
    Beitragswertungen
    19 Beitragspunkte
    Nachmittag gespielt und Lösung selbst gefunden .. und mehr probleme zwinker

    Doppelpunkt im TAG bei XML/RDF bringt echten Mehrwert *g* - muss also ersetzt werden - wer sowas mal braucht - hier ist meine Lösung :

    <?php
    // Sichrerheitsbulletin Debian
    $xml = file_get_contents("https://www.debian.org/security/dsa-long.rdf");
    $xml = preg_replace("/(<\/?)(\w+):([^>]*>)/", "$1$2$3", $xml);
    $xml = simplexml_load_string($xml);
    echo "<br>";
    for($i = 0;$i < count($xml);$i ++)
    {
      $titel = $xml->item[$i]->title;
      $link = $xml->item[$i]->link;
      $desc = $xml->item[$i]->description;
      $datum = $xml->item[$i]->dcdate;
    
    echo $datum.' - <b>'.$titel.'</b><br><a href="'.$link.'">'.$link.'</a><br>'.$desc;
    echo "<hr><br>";
    }



    kann geschlossen werde
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Nur um das der Vollständigkeit halber zu erwähnen, das erste ist ein Cross Domain (also von einer anderen Domain zu einer anderen) Ajax Request und der würde nur funktionieren, wenn der Debian Server deine Domain freigeschaltet hätte. Für solche Fälle gibt es aber einen Workaround, den Request über ein Iframe durchzuführen.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten