2009-12-03 22 views
11

He visto soluciones alternativas de proxy del servidor para recuperar rss (xmls) de dominios cruzados. De hecho, este mismo question hace frente a mi mismo problema pero da una solución diferente.Recuperar un dominio cruzado RSS (xml) a través de Javascript

que tienen una restricción de no utilizar un proxy para recuperar los canales RSS. Y de ahí que la solución Google AJAX Feed API también se quede sin imagen. ¿Hay una solución solo-cliente para este problema.

JSONP es la solución para las solicitudes que responden con salida JSON. Pero aquí, tengo feeds RSS que pueden responder con xml puro.

Cómo resuelvo el problema.

+0

¿Qué navegadores y plataformas deben ser compatibles? –

+0

Todos los principales navegadores: - IE 7+, Firefox 3+, Chrome ... – Ajay

Respuesta

0

En este momento no existe una solución multiplataforma para scripts entre sitios. ¿Tiene control o acceso a los canales RSS? Si es así, ¿por qué no simplemente respondes con JSON y usas JSONP?

Hay otras cosas que vienen mal con HTML5, como la mensajería entre sitios (llamada mensajería entre documentos) que puede ser capaz de entregar una carga útil de XML, pero la última vez que lo comprobé, no tenían incluso decidí por completo un límite de tamaño para los mensajes.

Se puede ver la especificación aquí: http://dev.w3.org/html5/spec/Overview.html#crossDocumentMessages

+0

Para responder a su primera pregunta, No, no tengo control sobre el feed.¡Los alimentos están en todas partes! – Ajay

+0

¿Lo son? /sarcasmo. ;) Vale la pena preguntar en la improbabilidad de que tenías el control de la alimentación que estabas recuperando. –

4

usar algo como Yahoo! Pipes para servir como su apoderado y traducir el código XML RSS en una respuesta JSON.

Aquí hay un artículo con instrucciones y ejemplos de código que explica cómo hacerlo: Yahoo Pipes--RSS without Server Side Scripts.

+0

yahoo pipes ... eso es un NO cos, tengo alimentaciones internas !! :( – Ajay

+0

Creo que para sus feeds internos, tendrá que usar un proxy. –

+0

esto debe marcarse como la respuesta. – the0ther

0

Una solución para llamadas entre dominios sin un proxy del lado del servidor es usar un componente SWF. Puede hacerse una secuencia de comandos o utilizar el fácil acceso FLSend

el componente utiliza URLRequest de ActionScript para llamar a los dominios remotos y ExternalInterface para comunicarse con los métodos de JavaScript que hacen que su contenido.

+1

Aún así no puede recuperar los datos de otro servidor, a menos que el archivo crossdomain.xml allí permita el acceso así que no es una solución general. – jcoder

0

La única forma en que puedo pensar sería insertar un applet Java firmado en la página web para recuperar el xml y usar javascript para interactuar con eso. Ni siquiera estoy 100% seguro de cuál es el modelo de seguridad de Java actualmente, pero creo que funcionaría.

1

Si tiene control sobre ambos dominios, puede probar una biblioteca de secuencias de comandos entre dominios como EasyXDM, que ajusta las peculiaridades entre navegadores y proporciona una API fácil de usar para comunicarse en secuencias de comandos del cliente entre diferentes dominios utilizando los mejores mecanismo disponible para ese navegador (por ejemplo, postMessage si está disponible, otros mecanismos si no).

Advertencia: debe tener control sobre ambos dominios para que funcione (donde "control" significa que puede colocar archivos estáticos en ambos). Pero no necesita ningún cambio de código en el servidor.

Otra advertencia: aquí hay implicaciones de seguridad. ¡Asegúrese de confiar en el script del otro dominio!

Cuestiones relacionadas