【发布时间】:2016-11-02 07:57:30
【问题描述】:
我在 R-Studio Server 上托管一个闪亮的应用程序。通过 Shiny 创建的 App 是一个浏览器 App。这意味着 JavaScript 是从客户端站点执行的。在我的应用程序中,我通过用户交互创建了几个,它们保存在 localhost/webserver 上。然后我想用 JavaScript 访问这些文件并在那里处理它们。这就是麻烦开始的地方......
这是cross-origin-ressource-sharing,我不能创建Cross-Origin XMLHttpRequest,因为出于安全原因,这是禁止的。我应该如何访问 JavaScript 中的文件?当我将相对/绝对路径传递给我得到的文件时
我传递了一个类似path/to/file.json 的链接,当我在控制台中签入时,javascript 将其更改为localhost:numbererOfPort/path/to/file 之类的东西。当我在浏览器中输入它时,什么也没有。在我的文件系统上,该文件位于path/to/file 下,没有localhost...
加载资源失败:服务器响应http://localhost...json,状态为404(未找到)。
我查看了JONSP,但我认为这不是我要找的,因为我不是停靠在 API 上,而是停靠在磁盘上的文件上。 我还尝试通过安装打开/关闭 CORS 的扩展程序来放松 Chrome 的安全设置。 我仍然收到这条消息:
XMLHttpRequest 无法加载 xy。跨源请求仅支持协议方案:http、data、chrome、chrome-extension、https、chrome-extension-resource。
【问题讨论】:
-
如果它抛出一个 404,这不是 CORS 的问题。可以通过设置正确的标头来启用 CORS 本身,尤其是 Access-Control-Allow-Origin。
-
@SargoDarya 我添加了一些
404可能来自的信息。 -
“在 javascript 中访问这些文件并在其中处理它们”是什么意思?
-
@warmoverflow 我想将
.json文件加载到 JavaScript 中以便在那里使用它们。类似d3.json(...) -
我认为,如果您将 json 文件放在应用程序的
www子文件夹中,那么您可以使用http://localhost:3838/app_directory/file.json访问该文件(此处没有www)。然后它应该工作。这与 CORS 无关。只要您可以使用浏览器访问该文件,您就可以在 Javascript 中进行访问。
标签: javascript r cors shiny cross-domain