ThingWorx Flow > Installation und Konfiguration > ThingWorx Flow konfigurieren > Externen Aufruf zu ThingWorx Flow durchführen
Externen Aufruf zu ThingWorx Flow durchführen
Verwenden Sie eine der folgenden Methoden für einen externen Aufruf bei ThingWorx Flow:
REST-Aufruf von einer externen Website bei ThingWorx Flow durchführen
Wenn eine Website versucht, einen REST-Aufruf beim ThingWorx Flow Server durchzuführen, blockiert der Server die Anforderung, da es sich um eine Cross-Origin-Anforderung handelt. Um dies zuzulassen, muss der ThingWorx Flow Server so konfiguriert werden, dass er Cross-Origin-Anforderungen von Websites zulässt. Fügen Sie einen CORS-Filter (Cross-Origin Resource Sharing) zum ThingWorx Flow Server hinzu, um Cross-Origin-Anforderungen zu aktivieren. Andere Websites, die auf einem anderen Server bereitgestellt werden, können dann auf Daten vom ThingWorx Flow Server zugreifen.
Führen Sie die folgenden Schritte aus, um einer Website einen REST-Aufruf bei ThingWorx Flow zu ermöglichen:
1. Fahren Sie alle ausgeführten Nginx-Instanzen herunter.
2. Öffnen Sie die Datei vhost-flow.conf am folgenden Speicherort unter Ihrer Nginx-Installation.
Windows: C:/Program Files/nginx-<Version>/conf/conf.d
Linux: /etc/nginx/conf/conf.d
3. Suchen Sie in der Datei vhost-flow.conf im Abschnitt location /Thingworx die Zeile proxy_set_header X-Content-Type-Options nosniff;, und fügen Sie die folgenden Zeilen hinzu:
set $cors '';
# Right side of condition can be regular expression:
# if ($http_origin ~ '^https?://(localhost|www\.yourdomain\.com|www\.yourotherdomain\.com)')
if ($http_origin = '<Ursprung_von_dem_aus_ThingWorx_Flow_aufgerufen_wird>') {
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. Wenn ThingWorx Foundation und ThingWorx Flow auf verschiedenen Rechnern installiert sind, gehen Sie folgendermaßen vor:
Suchen Sie die folgende Zeile in der Datei vhost-flow.conf:
# add_header Content-Security-Policy
Fügen Sie die folgenden Zeilen unter der obigen Zeile hinzu:
add_header Content-Security-Policy "frame-ancestors 'self' <Ursprung_von_dem_aus_ThingWorx_Flow_aufgerufen_wird>;";
Sie können den Domänennamen hartcodieren oder einen regulären Ausdruck (RegEx) angeben. Beispiel: add_header Content-Security-Policy "frame-ancestors 'self' https://*.ptcnet.ptc.com;";
5. Ersetzen Sie <Ursprung_von_dem_aus_ThingWorx_Flow_aufgerufen_wird> durch die URL der Website, die versucht, auf ThingWorx Flow zuzugreifen.
6. Starten Sie den Nginx-Dienst neu.
WebSocket-Aufruf bei ThingWorx Flow durchführen
Standardmäßig können Sie Web Socket Secure-Aufrufe (WSS) bei ThingWorx Flow durchführen.
WebSocket-Aufrufe (WS) werden nicht unterstützt.
War dies hilfreich?