Announcement

Collapse
No announcement yet.

NS_ERROR_DOM_BAD_URI - ERgebnis beim Zugreifen auf ein externes XML

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

  • NS_ERROR_DOM_BAD_URI - ERgebnis beim Zugreifen auf ein externes XML

    Hi, bin gerade dabei einen News Feed Reader zu schreiben. Ich hänge gerade an einem Teil mit JavaScript. Ich versuche die Feeds von einer bestimmten Quelle abzurufen. Jedoch ist in dem Fall der Access denied. Ich habe im Internet danach gesucht und bin darauf gestoßen, dass das wohl verhindert wird. Ich weiß jetzt nur nicht wie ich das Problem lösen könnte.

    Mein JavaScript Code:

    function getRequestObject() {
    var ro;
    // Mozilla
    if (window.XMLHttpRequest) {
    // Mozilla-kompatibler Browser
    try {
    ro = new XMLHttpRequest();
    } catch (e) {
    ro = null;
    }
    } else {
    try {
    ro = new ActiceXObject("Msxml2.Xmlhttp");
    } catch (e) {
    try {
    ro = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (e) {
    ro = null;
    }
    }
    }
    if (ro == null) {
    alert('Ihr Browswer unterstützt leider kein AJAX');
    }
    return ro;
    }

    function RSSRequest() {
    request_object.onreadystatechange = statehandler;
    request_object.open('get', url);
    request_object.send(null);
    }

    function statehandler()
    {
    if (request_object == 4) {
    var dom_tree = request_object.responseXML;
    }

    }

    request_object = getRequestObject();






    PS. Ist mein erste JavaScript Code... also sorry für mögliche dumme Fehler

  • #2
    Lösung gefunden!

    var http_request = false;

    function makeRequest(url) {

    try {
    netscape.security.PrivilegeManager.enablePrivilege ("UniversalBrowserRead");
    } catch (e) {
    alert("Permission UniversalBrowserRead denied.");
    }

    http_request = false;
    http_request = new XMLHttpRequest();
    if (http_request.overrideMimeType) {
    http_request.overrideMimeType('text/xml');
    }
    if (!http_request) {
    alert('Cannot create XMLHTTP instance');
    return false;
    }
    http_request.onreadystatechange = alertContents;
    http_request.open('GET', url , true);
    http_request.send(null);
    }

    function alertContents() {
    if (http_request.readyState == 4) {
    if (http_request.status == 200) {

    var string = http_request.responseText;
    alert(string);

    var dom_tree = http_request.responeXML;

    } else {
    alert('There was a problem with the request.');
    }
    }
    }

    function RSSRequest() {
    makeRequest('http://www.wunderground.com/auto/rss_full/global/stations/16239.xml');
    }

    Comment


    • #3
      Originally posted by alsch View Post
      ...Ich versuche die Feeds von einer bestimmten Quelle abzurufen. Jedoch ist in dem Fall der Access denied. Ich habe im Internet danach gesucht und bin darauf gestoßen, dass das wohl verhindert wird.
      Der XMLHttpRequest wurde aus "Sicherheitsgründen" so beschränckt, das nur URLs aufgerufen werden können, die sich auf der gleichen Domain befinden wie die aktuelle Seite. Damit soll Cross-Site-Scripting verhindert werden.
      Originally posted by alsch View Post
      ... Ich weiß jetzt nur nicht wie ich das Problem lösen könnte.
      Um diese Beschränckung zu umgehen, mußt du dir auf der Domain auf der dein Newsreader läuft ein Proxy-Script installieren. Dies kann z.B. ein PHP-Script sein, welches eine übergebene URL (nach entsprechender Prüfung) über einen HTTP-Socket öffnet, ausliest und das Ergebnis (einschl. Header) wieder ausgibt. Dieses Proxyscript kannst du dann via XMLHttpRequest aufrufen, da es auf der gleichen Domain liegt.

      Gruß Falk
      Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

      Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

      Comment

      Working...
      X