JSONP fonction de Rappel

J'étais à la recherche dans le concept de JSONP fonction de rappel. J'ai lu quelques articles concernant cela et a voulu obtenir une bonne compréhension de la notion de JSONP.

Donc, j'ai téléchargé un fichier json pour le serveur - fichier json

Et voici le code js que j'ai écrit pour récupérer les données. L'appel est effectué à partir de localhost pour l'abhishekprakash.com.

var xhr;
var dataList;
xhr = new XMLHttpRequest();

xhr.open('GET', 'http://abhishekprakash.com/script/example.json?callback=func_callbk',  true);
xhr.send();

func_callback = function(data){
    alert(data.data.people[0].id);
}

xhr.onreadystatechange = function(){
if(xhr.readyState == 4){
            console.log(dataList);
    }
};

Et c'est la réponse que j'obtiens dans la console:

JSONP fonction de Rappel

La fonction de rappel est appelée, mais elle ne contient pas les données Json.
Ce qui me manque?

Toute aide est appréciée.

Grâce

  • Qui callback est appelée? Le onreadystatechange ou la func_callback? Semble que votre réponse est JSON, pas JSONP, donc je ne vois pas comment le func_callback serait invoquée.
  • Ce service ne renvoie pas une bonne JSONP réponse. Est-il censé explicitement JSONP appels?
  • Dans l'onglet Paramètres de la console j'obtiens méthode func_callback
  • Depuis l'appel de la croix de domaine, il doit être un JSONP. C'est toi critères pour JSONP, droit?
  • Oui, JSONP est une option. Mais ce que vous êtes de retour en plaine JSON. Vous avez besoin de la réponse de format JSONP. Vous l'avez dit vous lire quelques articles...ils ont probablement expliqué que la réponse d'une requête JSONP doit être au format quelque chose comme callbackFunction(JSON);
  • Soit l'ensemble de la scro en-têtes ou de l'utilisation jsonp. Il y a un bon article sur wikipédia à propos de la même règle d'origine et vous êtes complètement l'incompréhension de la différence entre JSON et JSONP. JSON est "{\"message\":\"bonjour\"}" JSONP est callback({message:"hello world"}). JSON peuvent être récupérées avec xhr et jsonp doivent être récupérées par l'ajout d'un srcipt élément et la valeur de l'attribut src de l'url où jsonp vient de. Ensuite, dans votre code, vous devez fournir une fonction pour le rappel
  • Oui,je suis vraiment confus maintenant. 🙁