在 Google Colab 上,来自 Javascript 的本地主机访问失败
On Google Colab, localhost access from Javascript fails
我有一个 Javascript 片段,我的 Jupyter Notebook 安装到浏览器页面中。它在我的 PC 上访问支持 REST 的交互式应用程序 运行(即 Cytoscape)。
来自 Javascript 的 Cytoscape 调用的一个示例是“GET http://localhost:1234/v1/version”……由正常的 xmlHTTPRequest.send() 调用执行。
在其他 Jupyter Notebook 系统(例如 GenePattern Notebook)上,这工作正常。查看 Chrome 的网络跟踪,看起来我的 HTTP 调用被拦截,并且对 colab 的单独调用似乎试图授权调用(???)。这是 Chrome 在调试控制台中显示的内容:
colab 调用似乎发生在这里:https://colab.research.google.com/v2/external/external_polymer_binary.js?vrz=colab-20200817-085601-RC01_327067882
最后,我的调用似乎被禁止了......我得到了 HTTP 状态 500。
知道如何说服 colab 让我对本地 Cytoscape 的 Javascript 级调用通过吗?任何信息都可能有所帮助。
谢谢!
在 Colab 中对 localhost
的请求被重定向到 VM 后端。
详情在这里:
https://colab.research.google.com/notebooks/snippets/advanced_outputs.ipynb#scrollTo=R8ZvCXC5A0wT
A work-around 是将请求定向到 127.0.0.1
而不是主机名 localhost
。只有 localhost
个请求被拦截。
具体来说,此单元将从 Colab 后端 VM 获取:
%%javascript
// Fetches from the backend VM on port 1234.
fetch('http://localhost:1234/')
而此单元格将从您的浏览器所在的本地计算机获取 运行。
%%javascript
// Fetches from the machine running the browser.
fetch('http://127.0.0.1:1234/')
我有一个 Javascript 片段,我的 Jupyter Notebook 安装到浏览器页面中。它在我的 PC 上访问支持 REST 的交互式应用程序 运行(即 Cytoscape)。
来自 Javascript 的 Cytoscape 调用的一个示例是“GET http://localhost:1234/v1/version”……由正常的 xmlHTTPRequest.send() 调用执行。
在其他 Jupyter Notebook 系统(例如 GenePattern Notebook)上,这工作正常。查看 Chrome 的网络跟踪,看起来我的 HTTP 调用被拦截,并且对 colab 的单独调用似乎试图授权调用(???)。这是 Chrome 在调试控制台中显示的内容:
colab 调用似乎发生在这里:https://colab.research.google.com/v2/external/external_polymer_binary.js?vrz=colab-20200817-085601-RC01_327067882
最后,我的调用似乎被禁止了......我得到了 HTTP 状态 500。
知道如何说服 colab 让我对本地 Cytoscape 的 Javascript 级调用通过吗?任何信息都可能有所帮助。
谢谢!
在 Colab 中对 localhost
的请求被重定向到 VM 后端。
详情在这里: https://colab.research.google.com/notebooks/snippets/advanced_outputs.ipynb#scrollTo=R8ZvCXC5A0wT
A work-around 是将请求定向到 127.0.0.1
而不是主机名 localhost
。只有 localhost
个请求被拦截。
具体来说,此单元将从 Colab 后端 VM 获取:
%%javascript
// Fetches from the backend VM on port 1234.
fetch('http://localhost:1234/')
而此单元格将从您的浏览器所在的本地计算机获取 运行。
%%javascript
// Fetches from the machine running the browser.
fetch('http://127.0.0.1:1234/')