ThingWorx Flow > Installazione e configurazione > Configurazione di ThingWorx Flow > Esecuzione di una chiamata esterna a ThingWorx Flow
Esecuzione di una chiamata esterna a ThingWorx Flow
Per eseguire una chiamata esterna a ThingWorx Flow, utilizzare uno dei metodi seguenti:
Eseguire una chiamata REST da un sito Web esterno a ThingWorx Flow
Se un sito Web tenta di eseguire una chiamata REST al server ThingWorx Flow, quest'ultimo blocca la richiesta in quanto si tratta di una richiesta di origine incrociata. Affinché la chiamata abbia esito positivo, il server ThingWorx Flow deve essere configurato in modo da consentire le richieste di origine incrociata dai siti Web. A tal fine, è necessario aggiungere un filtro CORS (Cross-Origin Resource Sharing) al server ThingWorx Flow. Gli altri siti Web distribuiti in un altro server possono così accedere ai dati dal server ThingWorx Flow.
Per consentire a un sito Web di eseguire una chiamata REST a ThingWorx Flow, attenersi alla procedura descritta di seguito.
1. Chiudere tutte le istanze di Nginx in esecuzione.
2. Aprire il file vhost-flow.conf nella posizione indicata di seguito nell'installazione di Nginx.
Windows: C:/Programmi/nginx-<versione>/conf/conf.d
Linux: /etc/nginx/conf/conf.d
3. Nel file vhost-flow.conf, nella sezione location /Thingworx, individuare la riga proxy_set_header X-Content-Type-Options nosniff; e aggiungere le righe seguenti:
set $cors '';
# Right side of condition can be regular expression:
# if ($http_origin ~ '^https?://(localhost|www\.yourdomain\.com|www\.yourotherdomain\.com)')
if ($http_origin = '<Origine_che_chiama_ThingWorx_Flow>') {
set $cors 'true';
}
if ($cors = 'true') {
add_header 'Access-Control-Allow-Origin' "$http_origin" always;
add_header 'Access-Control-Allow-Credentials' 'true' always;
}
# OPTIONS indicates a CORS pre-flight request
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' '$http_origin';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Headers' 'Authorization,Accept,Origin,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range';
add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT,DELETE,PATCH';
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain charset=UTF-8';
add_header 'Content-Length' 0;
return 204;
}
4. Se ThingWorx Foundation e ThingWorx Flow sono stati installati in computer diversi, eseguire le operazioni descritte di seguito.
Trovare la riga seguente nel file vhost-flow.conf:
# add_header Content-Security-Policy
Aggiungere le righe seguenti sotto la riga precedente:
add_header Content-Security-Policy "frame-ancestors 'self' <Origine_che_chiama_ThingWorx_Flow>;";
È possibile impostare come hardcoded il nome del dominio o fornire un'espressione regolare. Ad esempio: add_header Content-Security-Policy "frame-ancestors 'self' https://*.ptcnet.ptc.com;";
5. Sostituire <Origine_che_chiama_ThingWorx_Flow> con l'URL del sito Web che sta tentando di accedere a ThingWorx Flow.
6. Riavviare il servizio Nginx.
Eseguire una chiamata WebSocket a ThingWorx Flow
Per default, è possibile eseguire chiamate WebSocket Secure (WSS) a ThingWorx Flow.
Le chiamate WebSocket (WS) non sono supportate.
È stato utile?