2017-01-14 3 views
0

Ich versuche, eine AJAX-Anfrage an eine API, die Wetterdaten liefert, aus irgendeinem Grund, die Anfrage schlägt fehl. Ich habe versucht, einen .fail() - Rückruf zu verwenden, um eine Fehlermeldung zu erfassen. Die Funktion wird aufgerufen, aber es gibt mir nur leere Zeichenfolgen, mit denen ich arbeiten kann.Ajax Anfrage fehlgeschlagen

Dies ist der Code, den ich

bin mit
navigator.geolocation.getCurrentPosition(function(position){ 

long = position.coords.longitude; 
lat = position.coords.latitude; 
console.log(long); 
console.log(lat); 

url = "http://api.openweathermap.org/data/2.5/weather?lat=" + encodeURIComponent(lat) + "&lon=" + encodeURIComponent(long) + "&APPID=" + encodeURIComponent(apikey); 

console.log(url); 

$.getJSON(url, function(response){ 
console.log("Success"); 
console.log(response); 
}).fail(function(obj, stat, err){ console.log(err)}); 

}); 

Die URL ich auf der Konsole passt sich perfekt den Standards des api, bis auf die ‚http‘ am Anfang. Ich habe sichergestellt, dass die Längen- und Breitengrade auch richtig abgerufen werden. Jede Einsicht würde sehr geschätzt werden.

+0

Ignorieren Sie alle nicht initialisierte oder scheinbar globale Variablen, sie sind alle in einem anderen Segment aussortiert, bevor dieser Code ausgeführt wird. –

Antwort

0

Funktioniert gut Überprüfen Sie dieses Beispiel. Ich werde meine API ändern, also stellen Sie sicher, dass Sie es überprüfen, bevor ich es ändere.

Versuchen Sie, das Ergebnis von console.log(url); in Ihren Browser einzufügen und prüfen Sie, ob Sie die gewünschte Ausgabe erhalten. Weil ich denke, es ist ein Problem in Ihren API

function func(){ 
 

 
lat = 37; 
 
lon = 53; 
 
apikey = "YOUR API"; 
 

 
url = "http://api.openweathermap.org/data/2.5/weather?lat=" + encodeURIComponent(lat) + "&lon=" + encodeURIComponent(lon) + "&APPID=" + encodeURIComponent(apikey); 
 

 
console.log(url); 
 

 
$.getJSON(url, function(response){ 
 
console.log("Success"); 
 
console.log(response); 
 
}).fail(function(obj, stat, err){ console.log(err)}); 
 
    
 
} 
 

 
func();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+0

Überraschenderweise funktioniert Ihr Snippet, während mir immer noch verweigert wird. –

+0

haben Sie Ihre API – codenut

+0

überprüft oder versuchen Sie Ihre URL im Browser – codenut