2017-07-20 1 views
0

ich Ajax erhalten möchten verwenden, um eine JSON-Datei in Github zu bekommen, schrieb ich diesen Code:wie Ajax verwenden, um eine JSON-Datei in Github

$.ajax({ 
    url: "https://rawgit.com/nianyuyu/play_javascript/master/1.json", 
    type:"get", 
    dataType:'json', 
    success: function(data){ 
     console.log(data); 
    }, 
    error:function() { 
     console.log("err"); 
    } 
}); 

aber ich bekomme „err“ immer und ich überprüfen, die Netzwerk, es bekommt die Daten enter image description here

Wie kann ich dieses Problem lösen, danke!

Antwort

2

Da Sie in Ihre Anfrage dataType:'json', eingefügt haben, validiert jQuery den zurückgegebenen JSON. In diesem Fall hat der zurückgegebene JSON ein Semikolon am Ende des Rumpfes, was kein gültiger JSON ist.

{ 
"name":"Bill Gates", 
"street":"Fifth Avenue New York 666", 
"age":56, 
"phone":"555 1234567" 
}; 

Entfernen Sie das Semikolon, um zu verhindern, dass der Fehlerhandler aufgerufen wird.

+0

ich es bekommen, danke ~ – nian

1

auf der Grundlage des Fehlers, ParserError, die URL scheint nicht gültig JSON zurück, während der Anruf es JSON werden erwartet (dataType: 'json')

Sie jQuery sagen kann, es als Text zu analysieren (mit dataType: 'text') und wandeln Sie es dann manuell in JSON um, indem Sie JSON.parse verwenden.

Sie müssen die letzten ; vor dem Parsen ausschneiden.

Als Randnotiz können Sie den Parameter verwenden, der an den Fehlerrückruf übergeben wurde, um den Fehler auszudrucken.

Festcode:

$.ajax({ 
 
    url: "https://rawgit.com/nianyuyu/play_javascript/master/1.json", 
 
    type: "get", 
 
    dataType: 'text', 
 
    success: function(response) { 
 
    if (!response) 
 
     return; 
 

 
    response = response.slice(0, -1); // trim ";" at the end 
 
    var data = JSON.parse(response); // convert to object 
 
    console.log(data); 
 
    }, 
 
    error: function(err) { 
 
    console.log(err); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

1

Ich glaube, Sie sind ein Parse-Fehler bekommen, die das Problem verursacht, können Sie die Json Antwort beheben oder Sie können Datentyp json entfernen Sie anfordern . Sie erhalten Parse-Fehler, wenn Ihre JSON-Antwort nicht gültig ist und Sie dataType verwenden: 'json'. Sie können es datatype ändern: 'text'

 $.ajax({ 
     url: "https://rawgit.com/nianyuyu/play_javascript/master/1.json", 
     type:"get", 
     dataType: 'text', 
     error: function(data){ 
     //debugger; 
      alert('err'); 
     }, 
     success:function(data) { 
      alert(data); 
     } 
    }); 

Referenz: jQuery returning "parsererror" for ajax request

1

1.json Datei ist falsch. Am Ende befindet sich ein Semikolon. Entfernen Sie diesen Semikolon und es wird gut funktionieren.

Wenn Sie keinen Zugriff auf diese Datei haben, können Sie den folgenden Code verwenden.

Hier bekomme ich im Grunde die Zeichenfolge und trimmen ihr letztes Zeichen und dann die Zeichenfolge zurück zum JSON-Objekt.

1

Sie sind die Daten im Fehler empfangen, weil Sie eine JSON Antwort erwarten, wo als die tatsächliche Antwort keine gültige JSON ist.

Es hat Semikolon am Ende, macht es eine ungültige JSON.

Versuchen Sie dataType als Text. Hier gehen Sie mit dem Beispiel https://jsfiddle.net/sfjxsdsx/1/

$.ajax({ 
 
    url: "https://rawgit.com/nianyuyu/play_javascript/master/1.json", 
 
    type:"get", 
 
    dataType:'text', 
 
    success: function(data){ 
 
     console.log(data); 
 
    }, 
 
    error:function() { 
 
     console.log("err"); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

Verwandte Themen