van una type tag script que página nuestro los librería invoca forma externo donde desde dentro cómo colocar cargaríamos body archivo javascript ajax web-services http mashup

javascript - una - ¿Cómo se pueden consumir los servicios web remotos desde un script del lado del cliente?



javascript where to put script tag (2)

En su pregunta, mencionó el truco <script>. JSONP está basado en eso. Fue propuesta formalmente hace casi 3 años por Bob Ippolito . No le da derecho a hablar sobre el origen del guión: el origen está definido por su página web, no por lo que incluye. Funciona solo porque el servidor ajusta JSON en una función de calibración, que debe definirse en su código, y será ejecutada por <script> cuando se cargue. El ejemplo más famoso de JSONP serían los servicios de Yahoo, incluido Flickr.

Otra técnica es usar window.name para transferir la información. Esta técnica fue detallada por Kris Zyp hace cuatro meses . Además, su artículo compara el transporte window.name con JSONP. No conozco ningún proveedor de servicios de alto perfil que sea compatible con este nuevo transporte. Obviamente, cambiará con el tiempo.

Por supuesto, debería mencionar el próximo Microsoft XDomainRequest . Se planea enviarlo con IE8, y ningún otro proveedor se comprometió a admitirlo, pero se presentó para su inclusión en HTML 5. XDR es una funcionalidad útil, pero sospecho que se cambiará varias veces antes de ser aceptado.

Si buscó en los enlaces, probablemente ya sepa que todos estos métodos requieren un cierto nivel de cooperación de un servidor de terceros. No puede usar servicios aleatorios a voluntad. Si tiene que usar un servicio no cooperativo, la única solución es realizar un proxy a través de su propio servidor con todos los problemas asociados: la legalidad cuestionable, el rendimiento reducido, la mayor carga en su servidor, la menor cantidad de conexiones entre el navegador del usuario y su servidor, y así sucesivamente.

Por lo que entiendo, debido a la aplicación de la "misma política de origen" en los navegadores actuales, es imposible obtener datos de una XmlHttpRequest enviada a un dominio diferente al dominio original de Javascript.

Tengo casi cero experiencia con respecto a este asunto, así que estoy confundido acerca de que los servicios web no se pueden usar desde Javascript. ¿Significa que las aplicaciones web con funcionalidad Ajax solo pueden interactuar entre sí sin llamar a servicios provistos por otros dominios? ¿Cómo funcionan los "mash-ups"? Supongo que los servicios se consumen en el lado del servidor, luego los datos se pasan al cliente a través de llamadas Ajax locales. No lo sé.

La única forma en que me puedo imaginar para lograr el consumo de servicios por parte del cliente sería recuperar un archivo Javascript directamente del dominio del servicio web objetivo a través de una etiqueta <script> , luego usar su API para interactuar con el dominio remoto.

¿Alguien puede iluminarme?


Eche un vistazo a JSONP, que trabaja en torno a la misma política de origen utilizando prácticamente el enfoque que está describiendo, solo asegúrese de confiar en dónde lo obtiene ...