Могу ли я вызвать Guacamole.HTTPTunnel(туннель) в случае, когда туннель сервлета находится не на том же хосте/сервере, что и файл html

Я пытаюсь создать экземпляр клиента для гуакамоле в примере здесь

// Instantiate client, using an HTTP tunnel for communications.
            var guac = new Guacamole.Client(
                new Guacamole.HTTPTunnel("tunnel")
            );

Это из примера здесь https://guacamole.incubator.apache.org/doc/gug/writing-you-own-guacamole-app.html

Могу ли я сделать это, если/когда у меня есть сервлет (туннель) на другом хосте, чем html-файл?


person Japheth Odonya    schedule 07.01.2017    source источник
comment
Видите ли вы какие-либо сообщения об ошибках в консоли браузера при выполнении запроса? Может быть, вам нужно включить заголовки CORS в ответ? Я предполагаю, что это устанавливает обычное HTTP-соединение со службой через XHR, которое требует заголовков CORS для междоменных запросов. Также убедитесь, что Guacamole может обрабатывать OPTIONS HTTP-запрос, который является предварительным запросом, отправленным до фактического запроса. Более подробную информацию о CORS можно найти здесь: developer.mozilla.org/en -US/docs/Web/HTTP/Access_control_CORS   -  person Igor Nikolaev    schedule 08.01.2017
comment
Спасибо, Игорь, я не знал, что могу указать полный URL-адрес сервлета, как объяснил Майк Джампер в своем ответе ниже, это была проблема, как только я указал полный URL-адрес, он сработал.   -  person Japheth Odonya    schedule 16.01.2017


Ответы (1)


Да, вы можете подключиться к HTTP-туннелю Guacamole, размещенному в другом домене. Вам нужно будет указать полный URL-адрес туннеля (а не относительный URL-адрес "tunnel"), а также необязательный параметр crossDomain при создании Guacamole.HTTPTunnel:

http://guacamole.incubator.apache.org/doc/guacamole-common-js/Guacamole.HTTPTunnel.html

Например:

// Instantiate client, using an HTTP tunnel for communications.
var guac = new Guacamole.Client(
    new Guacamole.HTTPTunnel("https://full/url/to/tunnel", true)
);

Также можно использовать туннель WebSocket в Guacamole. , так как там не действуют ограничения на кросс-происхождение.

person Mike Jumper    schedule 08.01.2017