如何在我自己的 django 项目中使用鳄梨酱
How to use guacamole in my own django project
最近,我正在用鳄梨酱写一个 Django 项目。如何将鳄梨酱 windows 插入我的 Django 页面?
我尝试使用 iframe(django 的 IP 是 localhost:8000 鳄梨酱的 IP 是 localhost:8080 ,但是后来即使他已经登录 Django 页面,用户也必须输入鳄梨酱的用户名和密码。
Django页面当然可以通过ajax请求得到guacamole的用户名和密码,但是貌似我们无法操作ip与外部网页不同的内部iframe元素。
我使用 urllib2(来自 Django 网络服务器)向鳄梨酱发送请求(localhost:8080/guacamole/api/tokens 并带有用户名和密码,只得到一个令牌,不知道怎么用,也不知道能不能用。
我尝试通过 Web 浏览器发送请求,但出现错误 XMLHttpRequest 无法加载 http://192.168.1.142:8080/guacamole/api/tokens。请求的资源上不存在 'Access-Control-Allow-Origin' header。因此不允许访问来源 'null'。
我不想让用户输入用户名和密码,这太糟糕了。我该如何解决?感谢您的收看。
I tried to use iframe ...
我必须警告不要为此使用 iframe
。这看起来非常简单,但除了您已经遇到的问题之外,管理关于 iframe
的浏览器键盘焦点很困难。当在鳄梨酱中输入不起作用时,您的用户会感到困惑。将 Guacamole 嵌入不同应用程序的最佳方法是分别利用 Guacamole 的 JavaScript 和 Java APIs: guacamole-common and guacamole-common-js(更多内容见下文)。
I use urllib2 (from Django web server) to send a request to guacamole( localhost:8080/guacamole/api/tokens with username and password, only get a token, I don't know how to use it nor whether it will work.
您无需绕过 Guacamole 网络应用程序的身份验证系统等,即可将 Guacamole 嵌入其他内容 - Guacamole 项目为此提供了一组 API。如果你想在另一个项目中使用 Guacamole,理想的方法是使用它的 JavaScript API,同时严格利用 Java API 隧道部分后端:http://guac-dev.org/doc/gug/writing-you-own-guacamole-app.html
以这种方式编写您的应用程序将允许您指定哪种身份验证机制(如果有的话)将适用于鳄梨调味酱 Java您的应用程序中嵌入的脚本客户端所使用的隧道,以及应用程序的确切方式派生或检索每个连接的配置信息,并且由于您将直接使用 Guacamole JavaScript 客户端,因此不会有 iframe
.
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
此错误是由于违反了浏览器的 same-origin policy。由于您在混合 "localhost" 和私有 IP (192.168.1.142) 时遇到此问题,看起来这主要是由于您测试应用程序的方式所致,我不确定您是否会遇到此问题随着您的项目的成熟。如果这个问题继续存在,有两种主要的方法来处理跨域问题:
- 使用 Apache 或 Nginx 的代理鳄梨酱,这样它就可以从与您的应用程序的其余部分相同的域中有效地提供服务。
- 确保在创建 Guacamole.HTTPTunnel 时将
crossDomain
设置为 true
。
最近,我正在用鳄梨酱写一个 Django 项目。如何将鳄梨酱 windows 插入我的 Django 页面?
我尝试使用 iframe(django 的 IP 是 localhost:8000 鳄梨酱的 IP 是 localhost:8080 ,但是后来即使他已经登录 Django 页面,用户也必须输入鳄梨酱的用户名和密码。
Django页面当然可以通过ajax请求得到guacamole的用户名和密码,但是貌似我们无法操作ip与外部网页不同的内部iframe元素。
我使用 urllib2(来自 Django 网络服务器)向鳄梨酱发送请求(localhost:8080/guacamole/api/tokens 并带有用户名和密码,只得到一个令牌,不知道怎么用,也不知道能不能用。
我尝试通过 Web 浏览器发送请求,但出现错误 XMLHttpRequest 无法加载 http://192.168.1.142:8080/guacamole/api/tokens。请求的资源上不存在 'Access-Control-Allow-Origin' header。因此不允许访问来源 'null'。
我不想让用户输入用户名和密码,这太糟糕了。我该如何解决?感谢您的收看。
I tried to use iframe ...
我必须警告不要为此使用 iframe
。这看起来非常简单,但除了您已经遇到的问题之外,管理关于 iframe
的浏览器键盘焦点很困难。当在鳄梨酱中输入不起作用时,您的用户会感到困惑。将 Guacamole 嵌入不同应用程序的最佳方法是分别利用 Guacamole 的 JavaScript 和 Java APIs: guacamole-common and guacamole-common-js(更多内容见下文)。
I use urllib2 (from Django web server) to send a request to guacamole( localhost:8080/guacamole/api/tokens with username and password, only get a token, I don't know how to use it nor whether it will work.
您无需绕过 Guacamole 网络应用程序的身份验证系统等,即可将 Guacamole 嵌入其他内容 - Guacamole 项目为此提供了一组 API。如果你想在另一个项目中使用 Guacamole,理想的方法是使用它的 JavaScript API,同时严格利用 Java API 隧道部分后端:http://guac-dev.org/doc/gug/writing-you-own-guacamole-app.html
以这种方式编写您的应用程序将允许您指定哪种身份验证机制(如果有的话)将适用于鳄梨调味酱 Java您的应用程序中嵌入的脚本客户端所使用的隧道,以及应用程序的确切方式派生或检索每个连接的配置信息,并且由于您将直接使用 Guacamole JavaScript 客户端,因此不会有 iframe
.
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
此错误是由于违反了浏览器的 same-origin policy。由于您在混合 "localhost" 和私有 IP (192.168.1.142) 时遇到此问题,看起来这主要是由于您测试应用程序的方式所致,我不确定您是否会遇到此问题随着您的项目的成熟。如果这个问题继续存在,有两种主要的方法来处理跨域问题:
- 使用 Apache 或 Nginx 的代理鳄梨酱,这样它就可以从与您的应用程序的其余部分相同的域中有效地提供服务。
- 确保在创建 Guacamole.HTTPTunnel 时将
crossDomain
设置为true
。