2011-02-24 8 views
0

Je dois saisir un élément DOM spécifique (par ID) à partir d'une URL externe via jQuery/AJAX. Je sais que cela viole la même politique d'origine, mais je ne peux pas trouver une solution de contournement acceptable pour quand je saisis spécifiquement HTML (au lieu de JSON). Par exemple, je suis sur website1.com, et j'ai besoin de saisir et de sortir le contenu de l'élément #something de website2.com. Comment puis-je faire cela en utilisant jQuery?Saisir le code HTML d'une URL externe via jQuery/AJAX

EDIT: Semble être un doublon de Why cant I load an external resource from jQuery load method? qui a une bonne réponse.

+2

Vous ne pouvez pas. Vous aurez besoin d'un script proxy côté serveur pour récupérer le code HTML pour vous. –

+0

@Pekka, Donc, par exemple, si je travaille sur un appareil mobile et en tant que tel est limité à HTML/CSS/JS, alors c'est tout simplement impossible? –

+1

yup. La même politique d'origine est absolue - il doit être dans le but d'éviter les problèmes de sécurité –

Répondre

1

(répondre à ma propre question):

Notez que cela est impossible dans le navigateur en raison de la règle d'origine. Pour contourner cela (comme Pekka a dit dans les commentaires ci-dessus), vous devez normalement créer un proxy local du contenu souhaité. Donc, comme si vous travaillez sur website.com, et que vous devez récupérer une partie de google.com, vous pouvez créer website.com/google qui ne serait qu'un clone de google.com via un code côté serveur. Ensuite, vous seriez libre de faire ce que vous voulez, puisque c'est sur votre domaine. Le problème avec lequel je travaillais, c'est que je travaillais sur un projet BlackBerry WebWorks, ce qui signifie que je suis limité à HTML/CSS/JS, et je ne suis pas vraiment sur un site web, donc un proxy est impossible. Heureusement, WebWorks vous permet d'ajouter des domaines approuvés à chaque application que vous créez, ce qui signifie que la même stratégie d'origine ne s'applique pas à ces domaines.

0

Faux. La stratégie n'est pas absolue tant que le serveur prend en charge JSONP. Google JSON JQuery et vous verrez des tonnes d'exemples de travail faire ce que vous voulez: renvoyer des données de service web d'un domaine autre que le vôtre via ajax.

Questions connexes