Datei-URL "Lokale Ressource darf nicht geladen werden" im Internet Browser

9

Ich habe einen großen Denkfehler.

Ich möchte eine Datei im klassischen ASP öffnen. Ich verwende verschiedene Variablen, weil sich Dinge ändern können, aber das Ergebnis ist korrekt. Ich weiß das, weil ich das Ergebnis getestet habe, indem ich die Linkadresse kopiert und in meine URL eingefügt habe. Jetzt das Problem: Wenn ich auf meinen Link klicke, macht das nichts. Keine Aktualisierung, keine Weiterleitung. nichts. Weiß jemand was ich falsch gemacht habe?

Ok, hier ist der Deal. Meine Datei ist nicht immer lokal, es hängt davon ab, in welcher Umgebung ich bin. Wenn ich das Ergebnis meiner URL kopiere, wird es heruntergeladen. Wenn ich auf meine URL klicke, antwortet sie nicht. Irgendwelche Ideen? Browserproblem? (obwohl ich 5 Browser getestet habe) Oder irgendetwas anderes? Ich bin wirklich fest hier und das Internet scheint nicht auf meiner Seite zu sein.

Ich habe 3 Umgebungen. Die Variablen darunter sind so, dass die Verbindung funktioniert. Ich weiß, dass der Link funktioniert, weil ich ihn durch Kopieren getestet habe. Und ja, es beginnt mit file:/// und ja ich bin mir sicher, dass der Link stimmt.

Hier ist meine Codezeile:

%Vor%

EDIT: Screenshot mit Fehler / Ergebnis des Links

    
Benny Niemeijer 20.01.2016, 13:35
quelle

4 Antworten

5

Jetzt wissen wir, was der tatsächliche Fehler ist, kann eine Antwort formulieren.

  

Lokale Ressource darf nicht geladen werden

ist eine Sicherheitsausnahme, die in Chrome und anderen modernen Browsern integriert ist. Die Formulierung kann unterschiedlich sein, aber in irgendeiner Form oder Form haben sie alle Sicherheitsausnahmen, um mit diesem Szenario umzugehen.

In der Vergangenheit konnten Sie bestimmte Einstellungen überschreiben oder bestimmte Flags wie

anwenden %Vor%

in Chrome (Siehe Ссылка )

  

Es ist aus einem bestimmten Grund da

     

An dieser Stelle sollte jedoch darauf hingewiesen werden, dass diese Sicherheitsausnahmen aus gutem Grund existieren und der Versuch, sie zu umgehen, nicht die beste Idee ist.

Es gibt einen anderen Weg

Da Sie bereits Zugriff auf Classic ASP haben, könnten Sie immer eine Zwischenseite erstellen, die die netzwerkbasierten Dateien bereitstellt. Dazu verwenden Sie eine Kombination aus dem ADODB.Stream -Objekt und der Response.BinaryWrite() -Methode. Auf diese Weise wird sichergestellt, dass die Speicherorte Ihrer Netzwerkdateien niemals dem Client zur Verfügung gestellt werden, und aufgrund der Flexibilität des Skripts können Ressourcen von mehreren Speicherorten und mehreren Dateitypen geladen werden.

Hier ist ein grundlegendes Beispiel ( getfile.asp ) ;

%Vor%

Dieses Beispiel ist pseudokodiert und daher nicht getestet.

Dieses Skript kann dann in <a> verwendet werden, um die Ressource zurückzugeben;

%Vor%

Sie könnten diesen Ansatz weiterführen und (besonders für größere Dateien) betrachten, indem Sie die Datei in Chunks mit Response.IsConnected lesen, um zu überprüfen, ob der Client noch dort ist und s.EOS property, um nach dem zu suchen Ende des Streams, während die Chunks gelesen werden. Sie können auch zu den querystring-Parametern hinzufügen, um festzulegen, ob die Datei inline zurückgegeben oder zum Download aufgefordert werden soll.

Nützliche Links

Lankymart 26.01.2016, 13:05
quelle
5

Für Leute, die die Sicherheitsoptionen von Chrome nicht ändern möchten, können wir einfach einen python http-Server aus dem Verzeichnis starten, das Ihre lokale Datei enthält:

%Vor%

und für Python 3:

%Vor%

Jetzt können Sie jede lokale Datei direkt von Ihrem js-Code oder extern mit Ссылка

erreichen     
alix 17.02.2017 09:54
quelle
2

Sie müssen einen Link zu Ihrer Datei angeben, auf die über den Browser zugegriffen werden kann, beispielsweise:

%Vor%

versus

%Vor%

Wenn Sie Ihren "Projecten" -Ordner direkt der Öffentlichkeit zugänglich machen, müssen Sie den Link möglicherweise nur als solchen angeben:

%Vor%

Aber Vorsicht, Ihre Dateien können dann von Suchmaschinen indiziert werden, können von jedem mit diesem Link usw. aufgerufen werden.

    
gpinkas 21.01.2016 16:19
quelle
0

Ich habe aus Ihrer ursprünglichen Frage nicht erkannt, dass Sie eine Datei auf dem lokalen Computer geöffnet haben. Ich dachte, Sie würden eine Datei vom Webserver an den Client senden.

Versuchen Sie anhand Ihres Screenshots Ihren Link wie folgt zu formatieren:

%Vor%

(Ohne den Inhalt jeder Ihrer Recordset-Variablen zu kennen, kann ich Ihnen nicht den genauen ASP-Code geben)

    
Rich 21.01.2016 09:06
quelle

Tags und Links