2016-06-30 16 views
0

Ich hosste eine Shiny-App auf R-Studio Server. Die durch Shiny erstellte App ist eine Browser-App. Das bedeutet, dass JavaScript von der Client-Site ausgeführt wird. In meiner App erstelle ich mehrere durch Benutzerinteraktion, die auf localhost/webserver gespeichert sind. Ich möchte dann auf diese Dateien in JavaScript zugreifen und sie dort verarbeiten. Und das ist, wo das Problem beginnt ...Erlaube Cross-Origin-Ressourcenfreigabe R-Studio Server/Shiny

Dies ist cross-origin-ressource-sharing und ich kann keine Cross-Origin XMLHttpRequest machen, da dies aus Sicherheitsgründen verboten ist. Wie soll ich auf die Dateien in JavaScript zugreifen? Wenn ich einen relativen/absoluten Pfad zu den Dateien übergebe, bekomme ich

Ich überlasse einen Link wie so path/to/file.json und wenn ich in der Konsole eincheck, ändert Javascript es zu etwas wie localhost:numbererOfPort/path/to/file. Wenn ich das in den Browser tippe, gibt es nichts. Auf meinem Dateisystem die Datei unter path/to/file ist, ohne die localhost...

fehlgeschlagen Ressource laden: der Server http://localhost...json mit dem Status 404 (nicht gefunden) reagiert.

hatte ich einen Blick JONSP aber ich glaube nicht, das ist, was ich suche, da ich nicht, sondern eine Datei auf einer API Andocken, auf der Festplatte gespeichert. Ich habe auch versucht, die Sicherheitseinstellungen von Chrome zu lockern, indem ich eine Erweiterung installiert habe, die CORS aktiviert/deaktiviert. Ich bekomme immer noch diese Nachricht:

XMLHttpRequest kann XY nicht laden. Cross-Ursprungsanforderungen werden nur für Protokollschemas unterstützt: http, data, chrome, chrome-extension, https, chrome-extension-resource.

+0

Wenn es eine 404 wirft, ist das kein Problem mit CORS. CORS selbst kann mit dem Setzen der richtigen Header aktiviert werden, insbesondere Access-Control-Allow-Origin. –

+0

@SargoDarya Ich habe einige Informationen hinzugefügt, woher der '404' kommen könnte. – Stophface

+0

Was meinst du mit "Zugriff auf diese Dateien in Javascript und verarbeiten sie dort"? –

Antwort

1

In Shiny, statische Dateien (wie Bilder, CSS und Javascript-Dateien) sollte in den Unterordner www unter dem App-Ordner gelegt werden. Auf diese Dateien kann dann in Shiny-Code unter Verwendung des relativen Pfads (aber ohne www Teil) oder im Webbrowser unter Verwendung von http://host_name:port/app_directory/file.name (wieder ohne www) zugegriffen werden.