2010-06-26 10 views
2
jQuery.ajax(
    { 
     url:'http://en.wikipedia.org/wiki/Football', 
     type:'get', 
     dataType:'jsonp', 
     success:function(data){alert(data);}, 
    } 

Je veux lire la page wikipedia de mon domaine en utilisant jQuery, comme ci-dessus. comme prévu wikipedia envoie des données en html pur, mais lorsque nous utilisons $ .ajax pour obtenir des données de domaine croisé, il s'attend à ce que les données reçues soient au format json, donc je reçois erreur et je ne peux pas lire la réponse wikiepedia.lire le contenu de l'URL de wikipedia en utilisant jquery, appel réseau inter-domaine

s'il vous plaît me suggérer comment puis-je lire wikipedia url en utilisant jquery/javascript (sans impliquer toute technologie côté serveur) est également là api disponible à travers lequel je reçois json de wikipedia.

+2

Bonne question, mais je pense que cela ne peut se faire sans un relais côté serveur qui fait la récupération. Pouvez-vous utiliser des langages côté serveur? –

Répondre

3

Le point de terminaison doit être configuré pour desservir jsonp, ce qui n'est pas le cas dans ce cas. Il ne transformera pas magiquement le type de réponse html normal en jsonp pour vous. Vous aurez besoin de créer un proxy sur votre serveur qui vous servira le contenu distant, par exemple si vous utilisez php, puis consultez ce link.

+0

est-il possible que je peux gérer les données reçues, je suis ok avec des données au format html. Je veux me débarrasser de l'erreur js iam obtenir et vouloir un mécanisme pour lire les données reçues n'a pas d'importance dans laquelle les données de formata est. –

+1

non parce que vous ne pouvez pas faire une requête ajax domaine croisé. La seule façon de faire des requêtes interdomaines est d'utiliser jsonp qui n'est pas réellement ajax (xmlhttp) car il utilise des balises de script et une fonction de rappel. Votre seule option est un proxy côté serveur de votre côté – redsquare

7

Il existe une API Wikipedia (plus précisément, MediaWiki, le moteur de Wikipédia, a une API). Vous pouvez en savoir plus à ce sujet ici: http://www.mediawiki.org/wiki/API

Voici un exemple jQuery sur la façon de récupérer le contenu au format de la page « Football »:

$.getJSON("http://en.wikipedia.org/w/api.php?action=parse&format=json&callback=?", {page:"Football", prop:"text"}, function(data) {console.log(data);}); 
+0

lorsqu'il est exécuté, ce code donne une erreur «page non trouvée». Si vous supprimez le "h" de "Footballh", il retourne correctement avec seulement un avertissement – MattF

+0

Merci J'ai modifié l'exemple – Steren