Warum funktioniert dieser jQuery-Code nicht? Was ist falsch?
Das erwartete Verhalten, dass es den Inhalt der angeforderten JSON-Datei meldet, tut es aber nicht.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script type="text/javascript">
$.ajax({
type: "GET",
url: "http://api.xxxxxxxxx.com/0.1/cities/key=xxxx",
dataType: "jsonp",
crossDomain: true,
success: function(data){
$.each(data, function(i, el){
alert(el.city)
});
;}
});
</script>
<title>Example</title>
</head>
<body></body>
</html>
Antworten:
2 für die Antwort № 1Die Ressource, die Sie laden, ist nicht JSONP, sondern nur eine JSON-Zeichenfolge. JSONP sollte folgendermaßen aussehen:
callback("jsonString");
Nicht alle json können als jsonp geladen werden, es muss speziell dafür eingerichtet werden.
0 für die Antwort № 2
Funktion muss Rückruf haben
callback({json:true});
Wenn Sie keine Kontrolle über den Zielserver haben, ist es nicht möglich, eine jsonp-Anfrage zu stellen