jQuery & YQL : Effectuer des requêtes AJAX en cross-domain

Benjamin Longearet 13 février 2011 4
jQuery & YQL : Effectuer des requêtes AJAX en cross-domain
 

Kézako

jQuery n’étant qu’un Framework JavaScript, il doit respecter les règles d’implémentations des requêtes de type AJAX, notamment celle du « Same Origin Policy » qui est imposé par les paramètres de sécurités des navigateurs. Pour être plus clair, cette restriction impose que les requêtes AJAX ne peuvent être effectuées que vers le domaine du site courant.

Dans un post précédent, « Récupérer le contenu d’une page externe : Cross Domain » j’expliquais comment « feinter » cette restriction au niveau du langage PHP et avec l’utilisation de la librairie PHP cURL. Je vais maintenant vous expliquer comment réaliser ce Cross Domain via le langage JavaScript et jQuery pour faciliter l’utilisation des méthodes AJAX !

Pré-requis

YQL ou Yahoo ! Query language

Mais qu’est ce que c’est que cette bête là ! Et bien déjà sa se prononce « Ouaye-Qiou-Elle »…

Bon trêve de plaisanterie, cet outils mis à disposition par Yahoo est langage similaire (voir identique =D) au SQL. Il permet d’exécuter des requêtes, de filtrer, d’ordonner et de combiner des données situées sur l’Internet !

Pour notre part, on utilisera la table « html » qui permet de récupérer le contenu d’un page Internet distante. La requête ressemble à :

SELECT * FROM html WHERE url = "url_site"

Il est même possible d’utiliser la syntaxe XPath pour recevoir uniquement les résultats intéressants (cf YQL xpath), pour les démonstrations, j’ai utilisé jQuery pour parser mes résultats.

Le site de ressources Yahoo est assez bien détaillé, c’est pourquoi je ne vais pas parler plus largement du YQL ici. Une console permet de tester à la FireBug les résultats obtenus par une requête (la console YQL).

Ajax et jQuery

Je ne rentrerai pas dans le détail de l’utilisation des méthodes permettant de mettre en place les techniques AJAX en jQuery. Ce sujet est très largement traité sur la toile !

Les plus

Bon Cross-Domain à vous!

Et surtout bon dév’ [:D]


source_demo_jquery_YQL_cross-domain
Titre: source_demo_jquery_YQL_cross-domain (559 clicks)


Légende:


Nom du fichier: jquery_YQL_cross-domain.zip


Taille: 50 kB

4 Commentaires »

  1. bill 13 avril 2011 au 19 h 44 min - Reply

    bonjour,
    ca veut dire quoi: le site courant?
    « Pour être plus clair, cette restriction impose que les requêtes AJAX ne peuvent être effectuées que vers le domaine du site courant. »

  2. cowboy 1 novembre 2012 au 12 h 29 min - Reply

    Hey Benjamin,

    Y devrait avoir un ou plusieurs oublié dans tes articles. Ca abime l'affichage après chaque snippet de code publié...

Laissez un message »