Come avviare html utilizzando Chrome in modalità "--allow-file-access-from-files"?


124

Ho la stessa situazione con QUI

E per risolvere questo problema devo avviare il file html utilizzando Chrome in modalità "--allow-file-access-from-files". Ho provato i passaggi successivi molte volte, ma non funziona.

  1. avvia cmd in Windows 7
  2. direttamente nella cartella chrome.exe
  3. Fai questo chrome --allow-file-access-from-files file:///C:/test%20-%203.html

1
Puoi anche utilizzare un plug-in Chrome per questo. Lo trovo il modo più pratico. Questo è solo un esempio: chrome.google.com/webstore/detail/allow-control-allow-origi/…
Robert Parcus

5
@RobertParcus Quel plugin sembra non funzionare se stai usando il fileprotocollo.
Andrew Thaddeus Martin

Risposte:


81

Cerca il percorso del tuo eseguibile di Chrome e poi, sul tuo cmd, prova:

> "C:\PathTo\Chrome.exe" --allow-file-access-from-files

fonte

EDIT: Come vedo nella tua domanda, non dimenticare che Windows è un po 'simile a Unix, quindi quando digiti "chrome ...", cmd cercherà Chrome nel PERCORSO, ma in generale la cartella Chrome non è sul PERCORSO. Inoltre, non specifichi un'estensione per il tuo eseguibile ... Quindi se ti sposti nella cartella di Chrome, probabilmente anche questo comando funzionerà:

> .\chrome.exe --allow-file-access-from-files

2
Ho riavviato il mio computer e faccio lo stesso che dici, e sembra a posto. Grazie.
AmyWuGo

2
Come da commento di Philippe, è necessario uscire da tutti i processi di Chrome e riavviare con l'opzione della riga di comando. (Windows 7)
yo

2
Se non funziona dopo aver riavviato Chrome, controlla i processi in background in esecuzione (icona di Chrome vicino agli orologi). Potresti avere l'opzione "Consenti a Google Chrome di funzionare in background" attivata.
Alex Klaus

1
@Abdul Sì, esattamente, a meno che non crei un collegamento con la bandiera e avvii Chrome da esso.
Mohamed Amine

3
Star Chrome da Windows PowerShell:Start-Process "chrome.exe" "--allow-file-access-from-files"
Peppe LG

114

Quella bandiera è pericolosa !! Lascia il tuo file system aperto per l'accesso. I documenti provenienti da qualsiasi luogo, locale o web, non dovrebbero, per impostazione predefinita, avere alcun accesso alle risorse file: /// locali.

Una soluzione molto migliore è eseguire un piccolo server http in locale.

--- Per Windows ---

Il più semplice è installare http-server a livello globale utilizzando il gestore di pacchetti del nodo:

npm install -g http-server

Quindi esegui semplicemente http-serverin una qualsiasi delle directory del tuo progetto:

Per esempio. d:\my_project> http-server

Starting up http-server, serving ./
Available on:
 http:169.254.116.232:8080
 http:192.168.88.1:8080
 http:192.168.0.7:8080
 http:127.0.0.1:8080
Hit CTRL-C to stop the server

O come suggerito da prusswan, puoi anche installare Python sotto Windows e seguire le istruzioni seguenti.

--- Per Linux ---

Poiché Python è solitamente disponibile nella maggior parte delle distribuzioni Linux, basta eseguire python -m SimpleHTTPServernella directory del progetto e puoi caricare la tua pagina suhttp://localhost:8000

In Python 3 il SimpleHTTPServermodulo è stato unito http.server, quindi il nuovo comando è python3 -m http.server.

Facile e nessun rischio per la sicurezza di lasciare accidentalmente il tuo browser aperto e vulnerabile.


9
QUESTA dovrebbe essere la risposta accettata! Sono venuto qui cercando il modo giusto per utilizzare l' --allow-file-access-to-filesopzione della riga di comando con Chrome (e Opera). La tua risposta mi fa sapere che la mia domanda è sbagliata, per un motivo importante. Inoltre, hai scritto la tua soluzione in modo conciso e facile da seguire. Grazie mille! Suggerirei anche, @orszaczky, di scrivere essenzialmente la stessa risposta per la domanda SO che era collegata in questa domanda originale, cioè quest'altra domanda . Potrei scriverlo ma ti meriti il ​​merito.
Andrew Willems

24
Questo può davvero essere un ottimo suggerimento, ma in realtà non è una risposta alla domanda. La domanda non era "qual è il modo migliore per accedere ai file locali in Chrome", ma specificamente "come faccio a lanciarlo con questo flag". Se sei consapevole dei rischi e non apri nulla che non hai creato, o se non sei nemmeno online ... va benissimo. Ci sono ragioni per cui questo è utile .. che presumo sia il motivo per cui Google lo ha reso un'opzione.
TinMonkey

2
È divertente che consiglieresti alle persone di installare node piuttosto che python su Windows, solo per ospitare questo semplice server. Come se l'opzione python non fosse adatta a Windows (cosa che non è). Quando tutto ciò che hai è un martello, tutto sembra un chiodo?
prusswan

15
Questa risposta sta solo diffondendo la paura. L' --allow-file-access-from-filesopzione consente a una file://pagina web di accedere ad altre file://risorse, tutto qui. Non lascia aperto il file system.
GetFree

3
Non è la risposta alla domanda. Alcune persone potrebbero averne davvero bisogno, ad esempio sto usando una speciale libreria di app webkit Coherent UIGT. Quando eseguo il test, ho bisogno dell'accesso ai file locali. A proposito, Firefox supporta file: // caricamento di un altro file locale.
Eric

29

Potresti provare il server Web per Chrome , che serve pagine web da una cartella locale utilizzando HTTP. È semplice da usare e eviterebbe il flag, che, come qualcuno ha menzionato sopra, potrebbe rendere vulnerabile il tuo file system.

Screenshot di Web Server per Chrome


3
Brillante. Questa è la soluzione user friendly che stavo cercando, grazie.
jay-danger

1
è fantastico. Esattamente quello che serve per questo problema.
A. Denis

21

Al momento della stesura di questo articolo, in OS X, di solito sarà simile a questo

"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --allow-file-access-from-files

Se sei un mostro come me e inserisci le tue app ~/Applications, allora lo sarà

"/Users/yougohere/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --allow-file-access-from-files

Se nessuno di questi funziona, digita chrome://versionnella barra degli indirizzi di Chrome e ti dirà quale chiamata "riga di comando" dovresti utilizzare. Basta aggiungere --allow-file-access-from-filesa quello.


"chrome: // version nella barra degli indirizzi di Chrome e ti dirà quale invocazione da" riga di comando "dovresti utilizzare" That the point
JCH77

15

Non farlo! Stai aprendo la tua macchina agli attacchi . Esegui invece un server locale. È facile come aprire una shell / terminale / riga di comando e digitare

cd path/to/files
python -m SimpleHTTPServer

Quindi punta il tuo browser su

http://localhost:8000

Se trovi che è troppo lento considera questa soluzione



1
Quegli attacchi sono per --disable-web-security, no --allow-file-access-from-files, quindi non funzioneranno, solo così la gente lo sa. C'è un rischio, ma non è vicino a quella dimensione.

Hai almeno letto l'articolo? Almeno uno degli attacchi è possibile con --allow-file-access-from-filesquesto. Perché correre il rischio quando la via del rischio zero è così semplice?
gman

@ JoeRocc, grazie per il voto negativo e grazie per aver aiutato le persone a non proteggere le loro macchine. Sei un vero eroe
gman

1
Questa, come tutte le altre varianti di questa, non è la risposta corretta, né il problema. È effettivamente sbagliato quello che stai suggerendo. Il lancio con questa opzione non apre la tua macchina agli attacchi. In modo controllato "disabilita l'implementazione miope / pigra di un blocco di sicurezza troppo ampio". Un file HTML o SVG locale dovrebbe assolutamente avere accesso al contenuto file: protocol, come il proprio file .css.
Minok

6

Se stai usando un Mac puoi usare il seguente comando da terminale:

open -a Google\ Chrome --args --allow-file-access-from-files

1

Esci (forza la chiusura) da tutte le istanze di chrome. Altrimenti il ​​comando seguente non funzionerà.

open -a "Google Chrome" --args --allow-file-access-from-files

L'esecuzione di questo comando nel terminale aprirà Chrome indipendentemente da dove è installato.


1
"Esci da tutte le istanze" - Questo è vero per la mia esperienza (su Linux). Questo è apparentemente uno stato condiviso che può essere impostato solo su un nuovo lancio.
Brent Bradburn

0

Su Windows:

chrome --allow-file-access-from-files file:///C:/test%20-%203.html

Su linux:

google-chrome --allow-file-access-from-files file:///C:/test%20-%203.html

0
REM Kill all existing instance of chrome 
taskkill /F /IM chrome.exe /T
REM directory path where chrome.exe is located
set chromeLocation="C:\Program Files (x86)\Google\Chrome\Application"
cd %chromeLocation%
cd c:
start chrome.exe --allow-file-access-from-files

salva le righe sopra come file .bat


taskkill / F / IM chrome.exe / T Utile per non riavviare il computer
JCH77

0

A seconda del file che verrà inserito nel filesystem, a condizione che quel file non sia un malware, allora sarebbe sicuro.

Ma non preoccuparti di scrivere / leggere i file nella directory del file system, perché puoi rafforzare la sicurezza della directory (inclusa la sua ereditarietà) fornendo un diritto di accesso appropriato e una restrizione di sicurezza. es: lettura / scrittura / modifica.

Per impostazione predefinita, il file system, l'archiviazione locale e la directory di archiviazione si trovano nella directory "\ Users [Utente corrente] \ AppData \ Local \ Google \ Chrome \ User Data \ Default".

Tuttavia puoi personalizzarlo usando il flag "--user-data-dir".

E questo è un esempio:

"C:\Program Files (x86)\Google\Application\chrome.exe" --user-data-dir="C:\Chrome_Data\OO7" --allow-file-access-from-files

Spero che questo aiuti chiunque.


0

Bene, è veloce eseguire un html che necessita di autorizzazione o bloccato da CORS Basta semplicemente aprire la cartella usando VSCODE e installare un'estensione chiamata "server live"

E poi basta fare clic in basso che dice go live, questo è tutto. Immagine dello schermo

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.