kostenloser Webspace werbefrei: lima-city


WikiAPI + Ajax

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    y****e

    Hi,

    ich programmiere gerade ein wenig in Ajax, bzw. möchte das nun lernen.

    var req = new XMLHttpRequest();
    req.open(
        "GET",
        "http://de.wikipedia.org/w/api.php?" +
            "action=query&" +
            "titles=Beispiel&" +
            "format=xmlfm" +
            "prop=info",
        false);
    req.send(null);


    Das ist mein Code, der der WikiAPI alles abzapfen soll. Ich möchte später Links zurückbekommen wie sie auch in der normalen Wikisuche zurückgegeben werden. Das Problem:

    Wenn ich obigen Code nutze, kommt irgendein Kram zurück, der nicht das gewünscht enthält.


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>MediaWiki API</title> </head> <body> <pre> <span style="color:blue;">&lt;?xml version=&quot;1.0&quot;?&gt;</span> <span style="color:blue;">&lt;api&gt;</span> <span style="color:blue;">&lt;error code=&quot;unknown_format&quot; info=&quot;Unrecognized value for parameter &amp;#039;format&amp;#039;: xmlfmprop=info&quot; xml:space=&quot;preserve&quot;&gt;</span> <b>******************************************************************</b> <b>** **</b> <b>** This is an auto-generated MediaWiki API documentation page **</b> <b>** **</b> <b>** Documentation and Examples: **</b> ** <a href="http://www.mediawiki.org/wiki/API">http://www.mediawiki.org/wiki/API</a> ** <b>** **</b> <b>******************************************************************</b> Status: All features shown on this page should be working, but the API is still in active development, and may change at any time. Make sure to monitor our mailing list for any updates. Documentation: <a href="http://www.mediawiki.org/wiki/API">http://www.mediawiki.org/wiki/API</a> Mailing list: <a href="http://lists.wikimedia.org/mailman/listinfo/mediawiki-api">http://lists.wikimedia.org/mailman/listinfo/mediawiki-api</a> Bugs &amp; Requests: <a href="http://bugzilla.wikimedia.org/buglist.cgi?component=API&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;order=bugs.delta_ts">http://bugzilla.wikimedia.org/buglist.cgi?component=API&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;order=bugs.delta_ts</a> Parameters: format - The format of the output One value: json, jsonfm, php, phpfm, wddx, wddxfm, xml, xmlfm, yaml, yamlfm, rawfm, txt, txtfm, dbg, dbgfm Default: xmlfm action - What action you would like to perform One value: sitematrix, review, opensearch, clicktracking, specialclicktracking, login, logout, query, expandtemplates, parse,

    Das ist lediglich ein Ausschnitt... Ich habe mich nun http://www.mediawiki.org/wiki/API damit befasst, aber kriege es irgendwie nicht hin.

    Eigentlich möchte ich, dass sowas zurückommt:

    <?xml version="1.0" encoding="utf-8"?>
    <api>
      <query>
        <pages>
          <page pageid="736" ns="0" title="Albert Einstein" touched="2007-07-06T04:37:30Z" lastrevid="142335140" counter="4698" length="86906" />
        </pages>
      </query>
    </api>


    Tut es aber nicht.

    Übrigens greife ich mit req.responseText und nicht responseXML drauf zu, bei responseXML, passiert GAR NICHTS.

    Weiß jemand wieso und kann mir helfen?

    Vielen Dank.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hi,
    du hast zwischen
    "format=xmlfm" +
            "prop=info",
    das "&" vergessen. Füg' es hinzu, dann klappt es auch :).

    Gruß
    Manni

    Beitrag zuletzt geändert: 12.3.2010 21:03:28 von bandi999
  4. Autor dieses Themas

    y****e

    Nein, auch das funktioniert leider nicht.

    var req = new XMLHttpRequest();
    req.open(
        "GET",
        "http://de.wikipedia.org/w/api.php?" +
            "action=query&" +
            "titles=Beispiel&" + 
            "prop=info|links&" +
            "format=xmlfm",
        false);
    req.send(null);


    Füge ich alert(req.readyState); ein, zeigt er mir, wie üblich 0 und 4 jeweils an - da ist also kein Fehler. Versuche ich nachdem ich eine 4 erhalten habe auf responseXML zuzugreifen, zeigt er mir nur "null" an. responseText hingegen speichert alles wunderbar ab. Wieso erstelle ich hier kein XML valides Dokument? Daran müsste es doch liegen.

    Danke!

    Übrigens kommt der Fehler: uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIXMLHttpRequest.send]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: XXXl :: <TOP_LEVEL> :: line 19" data: no]

  5. Hi,
    also im ersten Post schreibst du, dass du irgendeinen Kram zurück bekommst. Mit der geänderten Abfrage sollte nicht irgend ein Kram zurück kommen, sondern die gewünschte Antwort. Dieses Problem sollte doch damit gelöst sein, oder?

    Warum du dann auf die Antwort nicht als XML Dokument zugreifen kannst scheint mir wiederum eine andere Sache zu sein. Für Hilfe bei diesem Problem bitte den enstprechenden Code von dir posten, damit wir auch von gleichen Grundlagen ausgehen.

    Gruß
    Manni
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!