[pyar] Consulta - Como implementar Cross site services ????

Claudio Freire klaussfreire en gmail.com
Mie Jun 12 11:53:59 ART 2013


2013/6/12 Leonardo M. Rocha <leo.m.rocha en gmail.com>:
>
> El video serian ellos quienes lo hostean y utilizan algun player
> masomenos standard. El server de ellos me tiene que poder decir: el
> tiempo actual del video, el usuario actual, los campos de la DB que
> estan autorizados a ver. Yo tendira que poder decir: start, stop,
> pause al video.
> Por razones de seguridad, segun entiendo, no se puede hacer una
> comunicacion entre un iframe y un parent (pensaba ver de hacer los
> widgets como iframes para que ellos los embeban).
> O sea, hay opciones: iframe, embed code, poner todo en el server de
> ellos (es lo que no tengo ganas), y cada una tiene sus cosas.
> Como puedo comunicar ambos lados (con un iframe mozilla propone esto:
> https://developer.mozilla.org/en-US/docs/Web/API/window.postMessage?redirectlocale=en-US&redirectslug=DOM%2Fwindow.postMessage
> pero no se si es lo que busco o si va a funcionar en todos los
> browsers)


Se puede comunicar iframes, pero no entre dominios diferentes.

Vos lo que estás buscando, me parece, es JSONP[0]. Un estándar de
facto para hacer pedidos entre dominios diferentes. Lo que tendrías
que hacer, es encodear tu info de anotaciones en un formato JSON, y
proveer un javascript que lo reproduzca encima del video del otro.
Alternativamente, podrías considerar CORS[1]. Implementar CORS es
sencillo en frameworks web de python, por ejemplo, con Flask:

. en app.route('/coso.json')
.def coso():
.    ...
.    resp = make_response(json.dumps(data), 200)
.    if allowed_origin(request.headers.get('Origin')):
.        resp.headers['Access-Control-Allow-Origin'] =
request.headers.get('Origin')

Esto te permite decir que los dominios que allowed_origin devuelva
True puedan usar tu API JSON. No estoy seguro cuánto soporte de
browser[2] tiene esto. Al menos sé que funciona en Firefox 21.

Para hacer el pedido desde javascript, es bastante sencillo con
jQuery[3]. Seguro hay otras opciones, pero no las conozco.

[0] http://en.wikipedia.org/wiki/JSONP
[1] http://en.wikipedia.org/wiki/Cross-origin_resource_sharing
[2] http://en.wikipedia.org/wiki/Cross-origin_resource_sharing#Browser_support
[3] http://api.jquery.com/jQuery.getJSON/


More information about the pyar mailing list