Javascript 如果servlet与html文件不在同一主机/服务器上,我可以调用Guacamole.HTTPTunnel(“tunnel”)吗

Javascript 如果servlet与html文件不在同一主机/服务器上,我可以调用Guacamole.HTTPTunnel(“tunnel”)吗,javascript,servlets,guacamole,Javascript,Servlets,Guacamole,我试图在这里的示例中实例化鳄梨酱的客户机 // Instantiate client, using an HTTP tunnel for communications. var guac = new Guacamole.Client( new Guacamole.HTTPTunnel("tunnel") ); 这是从这里的例子 如果/当我将servlet(隧道)放在html文件所在的不同主机上时,是否可以执行此操

我试图在这里的示例中实例化鳄梨酱的客户机

// Instantiate client, using an HTTP tunnel for communications.
            var guac = new Guacamole.Client(
                new Guacamole.HTTPTunnel("tunnel")
            );
这是从这里的例子


如果/当我将servlet(隧道)放在html文件所在的不同主机上时,是否可以执行此操作?

是的,您可以连接到位于不同域上的鳄梨酱HTTP隧道。创建
鳄梨酱.HTTPTunnel
时,需要指定隧道的完整URL(而不是相对URL
“隧道”
),以及可选的
跨域
参数:

例如:

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

使用也是一个选项,因为跨原点限制不适用于该选项。

在发出请求时,您是否在浏览器控制台中看到任何错误消息?也许您需要在响应中包含CORS标题?我假设这会通过XHR建立到服务的常规HTTP连接,这需要跨域请求的CORS头。还要确保鳄梨酱能够处理
OPTIONS
HTTP请求,这是在实际请求之前发出的飞行前请求。您可以在这里找到有关CORS的更多详细信息:感谢Igor,正如Mike Jumper在下面的回答中解释的那样,我不知道我可以指定servlet的完整url,这就是我指定完整url后的问题所在。