2017-01-31 3 views
0

Ich versuche, die ersten zehn Sätze von 5 Wikipedia-Seiten mit der MediaWiki-API zu erhalten. Ich habe eine Abfrage in der API-Sandbox arbeiten, aber aus irgendeinem Grund funktioniert mein getJSON() Anruf nicht. Hier ist mein Code:jQuery Wikipedia API funktioniert nicht

$("form").submit(function() { 
    var input = $("#wikisearch").val(); 
    var link = "https://en.wikipedia.org/w/api/php?action=query&format=json&prop=extracts&indexpageids=1&generator=allpages&exsentences=10&explaintext=1&gapfrom=" + input + "&gaplimit=5&callback=?"; 

    $.getJSON(link, function(data) { 
     var array = data.query.pageids; 
     alert(array); 
    }); 
}); 

Kann mir jemand sagen, warum der JSON-Anruf nicht funktioniert?

+0

Welchen Fehler haben Sie? –

+0

Nichts passiert, ich bekomme das Array nicht alarmiert und keiner der anderen Codes, die ich in getJSON ausprobiert habe, tut irgendetwas. – Keli

Antwort

1

Ein paar Dinge:

  1. Sie haben einen Fehler in der URL: sollte es api.php nicht api/php sein.
  2. console.log die Daten, bevor Sie es verarbeiten.
  3. Sie können die Fehlerbehandlung hinzufügen, indem Sie einen Handler .fail() hinzufügen, um zukünftige Fehler zu erfassen.
+0

Ich habe diese Änderungen vorgenommen, nichts erscheint in der Konsole, wenn ich console.log (Daten) mache? Es ist nicht fehlgeschlagen, ich habe den Fehler-Event-Handler hinzugefügt und wenn ich mit der Verbindung durcheinander komme, scheitert es, also glaube ich nicht, dass ich die Daten richtig handhabe? – Keli

+0

Wahrscheinlich. Wenn Sie jedoch "Daten" protokollieren und nichts angezeigt wird, liegt möglicherweise ein Netzwerkproblem vor. Überprüfen Sie den Netzwerkbereich in den Entwicklertools, während Sie den Code ausführen. Sie sollten eine Transaktion mit 200 Status für Wikipedia sehen. Doppelklick um zu sehen, was zurück kam. Wenn nichts oder ein anderer Status - es ist Ihr Problem. –

+0

Das half mir herauszufinden, welchen Link ich verwenden sollte, es funktioniert jetzt, aber es ändert nur den HTML-Wert, den ich versuche, für einen Bruchteil einer Sekunde zu ändern, bevor die Seite neu geladen wird - nicht sicher, warum das passiert? – Keli