11
votes

Récupérer un domaine cross RSS (XML) via JavaScript

J'ai vu des travaux de contournement de proxy côté serveur pour la récupération de RSS (XMLS) des domaines inter-domaines. En fait, ce très Question Adresse mon même problème mais Donne une solution différente.

J'ai une contrainte de N'utilisez pas de proxy pour récupérer des flux RSS. Et d'où le La solution Google Ajax Feed API est également hors de la photo. Existe-t-il une solution de contournement client pour ce problème.

JSON est la solution pour les demandes qui répondent avec la sortie JSON. Mais ici, j'ai des flux RSS qui peuvent répondre avec pure XML.

Comment puis-je résoudre le problème?


2 commentaires

Quels navigateurs et quelles plateformes doivent être soutenues?


Tous les grands navigateurs: - c'est-à-dire 7+, Firefox 3+, Chrome ..


5 Réponses :


0
votes

À l'heure actuelle, il n'y a vraiment pas de solution plate-forme pour les scripts croisés. Avez-vous un contrôle ou un accès aux flux RSS? Si oui, pourquoi ne pas simplement répondre avec JSON et utiliser JSONP?

Il y a d'autres choses qui descendent le brochet avec HTML5, comme la messagerie croisée (appelée messagerie croisée) pouvant être capable de fournir une charge utile de XML, mais la dernière fois que j'ai vérifié, ils n'avaient même pas eu complètement décidé sur une limite de taille pour la messagerie.

Vous pouvez voir la spécification ici: http: //dev.w3. org / html5 / spec / aperçu.html # crossdocumessages


2 commentaires

Pour répondre à votre première question, non, je n'ai pas de contrôle sur le flux. Les flux sont partout!


Elles sont?! /sarcasme. ;) Il valait la peine de demander à la sortie de la chance que vous maîtrisiez la nourriture que vous récupérez.



4
votes

Utilisez quelque chose comme Yahoo! Tipes Pour servir de proxy et traduire le RSS XML en une réponse JSON.

Voici un article contenant des instructions et des échantillons de code qui explique comment le faire: > Yahoo Tipes - RSS sans scripts latéraux du serveur .


2 commentaires

Yahoo Tipes ... c'est un no COS, j'ai des aliments internes !! :(


Je pense que pour vos aliments internes, vous devrez utiliser un proxy.



0
votes

Une solution pour les appels croisés sans proxy côté serveur est d'utiliser un composant SWF. Vous pouvez scripter vous-même un ou utiliser le FLSEND

Le composant utilise l'urlrequest d'ActionScript pour appeler des domaines distants et externeInterface pour communiquer avec les méthodes JavaScript qui rendent votre contenu.


1 commentaires

Vous ne pouvez toujours pas récupérer des données d'un autre serveur, sauf si le fichier crossdomain.xml sur là permet d'accéder afin que ce ne soit pas une solution générale.



0
votes

La seule façon dont je peux penser serait d'intégrer une applet Java signée sur la page Web afin de revenir sur le XML et d'utiliser JavaScript pour interfacer avec cela. Je ne suis même pas à 100% sûr de ce que le modèle de sécurité de Java est pour cela actuellement, mais je pense que cela fonctionnerait.


0 commentaires

1
votes

Si vous souhaitez contrôler les deux domaines, vous pouvez essayer une bibliothèque de script de domaine de domaine tels que easyxdm , qui enveloppe Cross-Browser Quirks et fournit une API facile à utiliser pour la communication dans le script client entre différents domaines à l'aide du meilleur mécanisme disponible pour ce navigateur (par exemple, PostMessage Si disponible, d'autres mécanismes sinon).

CAVEAT: Vous devez avoir le contrôle des deux domaines afin de le faire fonctionner (où "contrôle" signifie que vous pouvez placer des fichiers statiques à leur deux). Mais vous n'avez pas besoin de modifications de code côté serveur.

Une autre mise en garde: il existe des implications de sécurité ici-- Assurez-vous de faire confiance au script de l'autre domaine!


0 commentaires