HttpClient OPTIONS en vez de GET


Guest

Hola,

He empezado a "cacharrear" con la aplicación (versión 2016.61 25/01/2016 sin registrar) que me parece muy sencilla e interesante para hacer RAD/prototipos pero me he atascado con lo primero que he intentado y no entiendo el porqué:

Objetivo

Descargar una imagen de un servidor local y mostrarla en un control [em]Image[/em]

Problema

En la petición al servidor, aunque se le especifica que sea un [em]GET[/em], manda un [em]OPTIONS[/em]

Escenario

En la vista que se crea automáticamente en una nueva aplicación ([em]NuevaVista1[/em]) he puesto:
- Un control HttpClient ([em]HttpClient1[/em])
- Un control Image ([em]Image1[/em])

En el evento [em]Show[/em] de [em]Nuevavista1[/em] el siguiente código:

En el evento [em]Success[/em] de [em]HttpClient1[/em]:

Error

[img=OPTIONS ERROR]http://i.imgur.com/OYBHOO6.png[/img]

Estas son las trazas en Chrome:

Gracias.


decsoft

Hola PoKeRGT,

Gracias por su interés. De veras que intento por todos mis medios que App Builder vaya más allá de crear prototipos. De hecho ya hay algunas aplicaciones bastante interesantes circulando por ahí. Respecto de su pregunta, me temo que su problema no es específico de App Builder, sino de cualquier aplicación Web.

El problema que está encontrando tiene que ver con los permisos CORS que el servidor de la aplicación ha de habilitar, precisamente, respondiendo a la petición "OPTIONS" correctamente. Podrá ver ejemplos de cómo habilitar CORS en PHP en varios de los ejemplos incluidos en App Builder. También podrá buscar más ejemplos por internet.

En todo caso, para mostrar una imagen en su aplicación no necesita descargarla, o, por mejor decir, bastará conque indique la URL de dicha imagen en la propiedad "Image" del control "Image". Dicha URL podrá enlazar a un archivo de imagen incluido en la aplicación o bien a una imagen de su servidor. En este caso el CORS no será problema.

Espero que esta información le resulte de ayuda.

Si tiene cualquier otra duda no deje de indicarlo.

Gracias de nuevo por su interés en mi trabajo PoKeRGT.



Guest

Hola David,

Primero, darte las gracias por tu pronta respuesta.

Segundo confirmarte que, efectivamente, se trataba de un problema con los permisos CORS. He habilitado CORS y configurado las cabeceras y ya funciona correctamente.

En mi caso estaba usando http-server sobre npm y he tenido que usar el parámetro:

Una vez más, gracias.


decsoft

Hola PoKeRGT,

Es raro que no pueda configurar los permisos CORS de alguna forma: al fin y al cabo se trata de un estándar que debería estar soportado por todos los servidores, so pena de dejar de dar servicio cuando se requiera. En los ejemplos de App Builder se habilita CORS usando PHP, pero, me consta que podría hacerse usando archivos ".htaccess" de Apache, por ejemplo.

En todo caso, le recuerdo que, para mostrar imágenes, no necesita usar un control "HttpClient", sino que basta con usar el control "Image", por ejemplo. De nuevo le remito a los ejemplos del programa, puesto que en muchos de ellos se hace uso del control "Image". En todo caso gracias por su interés en App Builder.



Guest

Perdona, pero con la velocidad que me has respondido no me ha dado tiempo a modificar mi respuesta.

Ya funciona tal y como he cambiado en el post anterior.

Gracias.


decsoft

Hola,

Me alegro de que al final diese con ello. Gracias por indicar la solución para su servidor.


Everybody can read the DecSoft support forum for learning purposes, however only DecSoft customers can post new threads. Purchase one or more licenses of some DecSoft products in order to give this and other benefits.

This website uses some useful cookies to store your preferences.

I agree. Hide this note. Give me more information.