2016-12-04 4 views
-1

Kann nicht wikipedia Antwort JSON

$(document).ready(function() { 
 
     $.getJSON({ 
 
      url:"https://en.wikipedia.org/w/api.php?action=query&format=json&list=search&origin=*&srsearch=gaby&srwhat=text&srprop=snippet&format=json", 
 
      function (result) { 
 
       $("#display").text(result.query.search[0].title); 
 
      } 
 
     }); 
 
    });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> 
 
<p id="display"></p>

Hier verwenden die $.getJSON() ‚s response JSON. Ich verwende result.query.search[0].title, um den Titel zu erhalten. Warum #display Element hat nichts zu zeigen?

+0

Was tut der Debugger am Anfang der inneren (succes) Funktion? – Richard

+0

Entschuldigung, ich weiß nicht, wie man debuggt, ich bin ein neuer frischer. Aber es gibt keinen Fehler. – Gaby

+0

Interessant. Es sieht wie ein Syntaxfehler aus, aber Sie haben wirklich eine * Objektmethode * mit dem Namen 'function' erstellt. Lesen Sie die '$ .getJSON'-Dokumentation und ein JavaScript-Tutorial: http://eloquentjavascript.net. –

Antwort

4

Nehmen Sie die url: und die {} innerhalb getJSON() Methode heraus.

$(document).ready(function() { 
 
    $.getJSON("https://en.wikipedia.org/w/api.php?action=query&format=json&list=search&origin=*&srsearch=gaby&srwhat=text&srprop=snippet&format=json", 
 
    function(result) { 
 
     $("#display").text(result.query.search[0].title); 
 
    }); 
 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> 
 
<p id="display"></p>

+0

Weitere Ressourcen zu [JQuery] (http://api.jquery.com/jquery.getjson/). Wenn Sie neu sind, ist die Dokumentation unbezahlbar. Es mag schwierig sein, es auf den ersten Blick zu verstehen, aber wenn du einmal lernst, diese Typen wirklich zu brechen und alle Anrufe zu verstehen ... unaufhaltbar. – Illdapt

+0

Ja, danke! Und noch eine Frage, wie bekomme ich die 'seitenid' in dieser Antwort JSON ([url] (https://en.wikipedia.org/w/api.php?action=query&generator=search&gsrsearch=meaning&srprop=size%7Cwordcount % 7Ctimestamp% 7Csnippet & prop = info & inprop = url))? – Gaby

+1

@Gaby: [Access/Prozess (verschachtelte) Objekte, Arrays oder JSON] (http://Stackoverflow.com/q/11922383/218196) –

2

Sie haben Ihren Anruf nicht korrekt strukturiert.

$.getJSON({ 
    url:"https://en.wikipedia.org/w/api.php?action=query&format=json&list=search&origin=*&srsearch=gaby&srwhat=text&srprop=snippet&format=json", 
    function (result) { 
     $("#display").text(result.query.search[0].title); 
    } 
}); 

Sie erscheinen die Syntax für $.ajax() zu verwenden, die mit $.getJSON() nicht kompatibel ist. Selbst wenn es kompatibel wäre, würde Ihnen der korrekte Eigenschaftsname für die Erfolgsfunktion fehlen.

(Ihre Syntax erstellt ein Objekt mit einem 'url' und 'function' Attribut. (Ich bin mir nicht sicher, warum die Funktion diesen Namen erhält.) Dieses Objekt wird an $.getJSON() im URL-Argument übergeben. JQuery konvertiert es in .. eine Zeichenfolge „[object Object]“ und verwendet diese für die uRL Dies ist ein 404. $.getJSON() nicht geräuschlos erzeugt, wenn die Anforderung fehlschlägt oder die Antwort ist ungültig)

verwenden Sie stattdessen:

$.getJSON(
    "https://en.wikipedia.org/w/api.php?action=query&format=json&list=search&origin=*&srsearch=gaby&srwhat=text&srprop=snippet&format=json", 
    function (result) { 
     $("#display").text(result.query.search[0].title); 
    } 
); 
+1

* "Sie würden die Bezeichnung für die Erfolgsfunktion vermissen." * Nicht sicher, was Sie damit meinen, aber der Code ist syntaktisch gültig (leider). Das erstellte Objekt hat zwei Eigenschaften: 'url' und' function' (eine Methode). –

+0

auf ja! Und eine andere Frage, wie man die 'seitenid' in dieser Antwort [url] bekommt (https://en.wikipedia.org/w/api.php?action=query&generator=search&gsrsearch=meaning&srprop=size%7Cwordcount%7Ctimestamp%7Csnippet&prop= info & inprop = url)? – Gaby

+0

@FelixKling Ich notierte die automatische Benennung auch während Sie kommentierten. Ich bin selbst neugierig darauf. Können Sie auf etwas hinweisen, das erklärt, warum das funktioniert? – Ouroborus

Verwandte Themen