If everything were so simple and obvious, the world would be simpler but more boring.
I don't have code like this: <script src="https://localhost/framework.js"></script>, so there's no way to change it.
Original Message:
Sent: 12-10-2025 09:23
From: Fernando Sotto dos Santos
Subject: CORS for local embedded framework
Sim, esse é o fluxo correto. O Embeddable Client não acessa framework.js diretamente. Ele simplesmente carrega sua aplicação CRM dentro do iframe. É a sua página CRM quem faz o carregamento do script. Se você alterar:
para:
então o navegador passará a buscar o arquivo desse domínio público, e não mais do localhost. Dessa forma, o apps.mypurecloud.ie deixa de tentar acessar endereços privados, eliminando o bloqueio de segurança.
Alguns links de apoio:
https://developer.genesys.cloud/authorization/platform-auth/cors
Fetch Standard
------------------------------
Fernando Sotto dos Santos
Consultor Grupo Casas Bahia
Original Message:
Sent: 12-10-2025 08:46
From: Igor Varshavsky
Subject: CORS for local embedded framework
So you mean I should specify in my app:
<script src="https://dev.mycompany.com/framework.js"></script>
<iframe src="https://apps.mypurecloud.ie/crm/index.html?crm=framework-local-secure&" ></iframe>
And that way https://apps.mypurecloud.ie/ won't access localhost?
------------------------------
Igor Varshavsky
Original Message:
Sent: 12-10-2025 08:31
From: Fernando Sotto dos Santos
Subject: CORS for local embedded framework
O Embeddable Client não acessa o framework.js por conta própria. O script é carregado pela sua própria página CRM, dentro do iframe.
Ou seja, não existe nenhuma dependência técnica do Genesys Cloud que obrigue o uso de "https://localhost".
Se você mover o framework.js para um servidor corporativo (por exemplo, https://dev.mycompany.com/framework.js), basta atualizar a referência na sua aplicação CRM:
O Embeddable Client continuará funcionando normalmente, porque ele apenas renderiza a sua aplicação, e o navegador faz o download do script a partir da URL que você definiu.
O problema atual ocorre porque navegadores modernos bloqueiam scripts locais quando carregados a partir de um domínio público. Ao servir o arquivo a partir de um domínio público controlado por você, o bloqueio desaparece e o framework é carregado sem restrições.
------------------------------
Fernando Sotto dos Santos
Consultor Grupo Casas Bahia
Original Message:
Sent: 12-10-2025 08:19
From: Igor Varshavsky
Subject: CORS for local embedded framework
Ola Fernando.
Thanks for the reply.
Of course, I can host framework.js on a corporate server, but how will the embedded client access it?
I'm currently using the URL https://apps.mypurecloud.ie/crm/index.html?crm=framework-local-secure, which assumes https://localhost.
Best regards
------------------------------
Igor Varshavsky
Original Message:
Sent: 12-10-2025 07:58
From: Fernando Sotto dos Santos
Subject: CORS for local embedded framework
Olá @Igor Varshavsky, saudações do Brasil!
O erro que você está recebendo não é causado por CORS tradicional. O Chrome e Edge passaram a aplicar Private Network Access (PNA), que bloqueia qualquer tentativa de carregar scripts locais (https://localhost/...) a partir de uma origem pública como https://apps.mypurecloud.ie. Esse bloqueio ocorre antes mesmo da requisição ser enviada, portanto configurar cabeçalhos CORS não resolve. Essa é uma limitação do navegador, não da Genesys Cloud.
As soluções possíveis são:
-
Hospedar framework.js em um domínio público válido (CDN, subdomínio corporativo, etc.).
-
Usar um reverse proxy público para atingir seu ambiente local.
-
Executar o ambiente de desenvolvimento completo localmente, evitando a origem pública.
-
Opcionalmente, em ambiente de desenvolvimento, iniciar o Chrome com --disable-features=BlockInsecurePrivateNetworkRequests (não suportado para produção).
Cenário semelhante ao seu: dns - CORS error: "Permission was denied for this request to access the unknown address space" only inside office network (Chrome PNA block?) - Stack Overflow
------------------------------
Fernando Sotto dos Santos
Consultor Grupo Casas Bahia
Original Message:
Sent: 12-10-2025 05:43
From: Igor Varshavsky
Subject: CORS for local embedded framework
Hello.
I'm working with the embedded client. For development, I use framework.js, which is located at https://localhost/framework.js.
Recently, I noticed that framework.js is unavailable with the error:
Access to script at 'https://localhost/framework.js' from origin 'https://apps.mypurecloud.ie' has been blocked by CORS policy: Permission was denied for this request to access the 'unknown' address space.
In developer tools, I see:
Request URL: https://localhost/framework.js
Referrer Policy: strict-origin-when-cross-origin
Which is pretty clear. What are the solutions for this problem?
Best regards,
Igor
#EmbeddableFramework
------------------------------
Igor Varshavsky
------------------------------