Uso el intermediario de contexto orion-ld
{ "orionld version": "post-v1.0.0", "orion version": "1.15.0-next", "uptime": "0 d, 0 h, 25 m, 17 s", "git_hash": "nogitversion", "compile_time": "Wed Jan 26 15:58:47 UTC 2022", "compiled_by": "root", "compiled_in": "", "release_date": "Wed Jan 26 15:58:47 UTC 2022", "doc": "https://fiware-orion.readthedocs.org/en/master/" }Si trato de solicitar datos JSON en un archivo HTML a través de JS como
var myRequest = new XMLHttpRequest(); myRequest.open("GET", "http://192.168.0.18:1028/ngsi-ld/v1/entities/urn:ngsi-ld:OffStreetParking:XXX_102700") ; myRequest.setRequestHeader("Accept", "application/ld+json") myRequest.onload = function () { console.log(myRequest.responseText); }; myRequest.send();Recibí un error: "Acceso a XMLHttpRequest en 'http://192.168.0.18:1028/ngsi-ld/v1/entities/urn:ngsi-ld:OffStreetParking:XXX_102700' desde el origen 'http://192.168.0.18' ha sido bloqueado por la política de CORS: no hay ningún encabezado 'Access-Control-Allow-Origin' en el recurso solicitado".
Si inicio sesión en la consola del contenedor acoplable y compruebo la variable ORIONLD_CORS_ALLOWED_ORIGIN, contiene el valor necesario "__ALL".
Actualización al 01/03/2022: ahora creo una página web simple basada en funciones JS de NGSI.js , como sugirió Jason Fox ayer. Allí puede probar las llamadas relacionadas con "v2" a orion-ld y las llamadas relacionadas con "ld". En la consola del navegador, puede ver los resultados registrados. También puede cambiar la URL de orion-ld en el sitio web para poder probar su entorno. Sin embargo, la configuración de CORS para el servidor orion-ld no funcionó como se esperaba. Las llamadas 'v2' funcionan bien, las llamadas 'ld' fallaron. Creo mi entorno de prueba orion-ld con el siguiente docker-compose.yml :
version: "3.5" services: orion-ld: image: fiware/orion-ld hostname: orion-ld ports: - "1029:1026" depends_on: - mongo-db environment: ORIONLD_CORS_ALLOWED_ORIGIN: __ALL corsOrigin: __ALL ORIONLD_CORS_MAX_AGE: 86400 command: -dbhost mongo-db-vm -logLevel DEBUG mongo-db: image: mongo:3.6 hostname: mongo-db-vm volumes: - /SOMEWHERE/data:/dataPruebe mi entorno y el suyo en una página web simple y envíe sus comentarios.
Arquitecto y desarrollador de Orion-LD aquí. Todo lo que Orion-LD tiene sobre CORS es lo que se heredó de Orion. Esta es la primera vez que alguien solicita CORS para Orion-LD, así que intentaré solucionarlo lo antes posible.
Supongo que se trata de una configuración de desarrollo local. Por lo tanto, probablemente llame a su interfaz en "localhost" o "127.0.0.1", lo que lleva al problema CORS cuando llama a orion en "192.168.0.18". Básicamente tienes 2 opciones para que funcione:
No creo que valga la pena implementar el soporte de CORS directamente en Orion-LD, ya que este no es un escenario de implementación real. En escenarios del mundo real, tendría uno de los siguientes: