Создание внешнего вызова ThingWorx Flow
Используйте один из следующих методов для создания внешнего вызова ThingWorx Flow:
Выполнение вызова REST с внешнего веб-сайта в ThingWorx Flow
Если веб-сайт пытается выполнить вызов REST на сервере ThingWorx Flow, сервер блокирует запрос, поскольку это запрос с несколькими источниками. Чтобы это можно было сделать, сервер ThingWorx Flow должен быть настроен так, чтобы разрешить запросы с несколькими источниками с веб-сайтов. Добавьте фильтр CORS (совместное использование ресурсов с несколькими источниками) на сервер ThingWorx Flow, чтобы разрешить запросы с несколькими источниками. Другие веб-сайты, развернутые на другом сервере, могут затем получать доступ к данным с сервера ThingWorx Flow.
Выполните следующие шаги, чтобы разрешить веб-сайту выполнить вызов REST в ThingWorx Flow:
1. Закройте все выполняемые экземпляры Nginx.
2. Откройте файл vhost-flow.conf в следующем расположении в вашей установке Nginx.
Windows: C:/Program Files/nginx-<версия>/conf/conf.d
Linux: /etc/nginx/conf/conf.d
3. В файле vhost-flow.conf в разделе location /Thingworx найдите строку proxy_set_header X-Content-Type-Options nosniff; и добавьте следующие строки:
set $cors '';
# Right side of condition can be regular expression:
# if ($http_origin ~ '^https?://(localhost|www\.yourdomain\.com|www\.yourotherdomain\.com)')
if ($http_origin = '<Источник_вызова_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. Если ThingWorx Foundation и ThingWorx Flow установлены на разных компьютерах, выполните следующие действия.
Найдите следующую строку в файле vhost-flow.conf:
# add_header Content-Security-Policy
Добавьте следующие строки под приведенной выше строкой:
add_header Content-Security-Policy "frame-ancestors 'self' <Источник_вызова_ThingWorx Flow>;";
Можно жестко задать имя домена или указать регулярное выражение. Например: add_header Content-Security-Policy "frame-ancestors 'self' https://*.ptcnet.ptc.com;";
5. Замените <источник_вызывающий_ThingWorx_Flow> на URL-адрес веб-сайта, который пытается получить доступ к ThingWorx Flow.
6. Перезапустите сервис Nginx.
Выполнение вызова WebSocket для ThingWorx Flow
По умолчанию можно выполнять безопасные вызовы WebSocket (WSS) ThingWorx Flow.
Вызовы WebSocket (ws) не поддерживаются.
Было ли это полезно?