Bagaimana cara meluncurkan html menggunakan Chrome pada mode "--allow-file-access-from-files"?


124

Saya memiliki situasi yang sama dengan DI SINI

Dan untuk mengatasi masalah ini saya harus meluncurkan file html menggunakan Chrome pada mode "--allow-file-access-from-files". Saya mencoba langkah selanjutnya berkali-kali, tetapi tidak berhasil.

  1. mulai cmd di bawah windows 7
  2. langsung ke folder chrome.exe
  3. melakukan hal ini chrome --allow-file-access-from-files file:///C:/test%20-%203.html

1
Anda juga bisa menggunakan plugin chrome untuk itu. Menurut saya ini cara paling praktis. Ini hanyalah satu contoh: chrome.google.com/webstore/detail/allow-control-allow-origi/…
Robert Parcus

5
@RobertParcus Plugin itu tampaknya tidak berfungsi jika Anda menggunakan fileprotokol.
Andrew Thaddeus Martin

Jawaban:


81

Cari jalur Chrome Anda yang dapat dieksekusi dan kemudian, pada cmd Anda, coba:

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

Sumber

EDIT: Seperti yang saya lihat di pertanyaan Anda, jangan lupa bahwa Windows sedikit mirip dengan Unix, jadi saat Anda mengetik "chrome ...", cmd akan mencari Chrome di PATH, tetapi secara umum folder Chrome tidak tidak di PATH. Selain itu, Anda tidak menentukan ekstensi untuk file yang dapat dieksekusi ... Jadi jika Anda pindah ke folder Chrome, perintah ini mungkin juga akan berfungsi:

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

2
Saya me-restart komputer saya dan melakukan hal yang sama seperti yang Anda katakan, dan tampaknya baik-baik saja. Terima kasih.
AmyWuGo

2
Sesuai komentar Philippe, Anda harus keluar dari semua proses chrome dan memulai ulang dengan opsi baris perintah. (Windows 7)
yoyo

2
Jika tidak berfungsi setelah memulai ulang Chrome, periksa proses latar belakang yang sedang berjalan (ikon chrome di dekat jam). Anda mungkin telah MENGAKTIFKAN opsi "Biarkan Google Chrome berjalan di latar belakang".
Alex Klaus

1
@Abdul Ya, tepatnya, kecuali Anda membuat pintasan dengan bendera dan memulai Chrome dari situ.
Mohamed Amine

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

114

Bendera itu berbahaya !! Membiarkan sistem file Anda terbuka untuk akses. Dokumen yang berasal dari mana saja, lokal atau web, secara default tidak boleh memiliki akses apa pun ke file lokal: /// resources.

Solusi yang jauh lebih baik adalah menjalankan server http kecil secara lokal.

--- Untuk Windows ---

Cara termudah adalah menginstal http-server secara global menggunakan manajer paket node:

npm install -g http-server

Kemudian jalankan http-serverdi salah satu direktori proyek Anda:

Misalnya. 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

Atau seperti yang disarankan prusswan, Anda juga dapat menginstal Python di bawah windows, dan ikuti petunjuk di bawah ini.

--- Untuk Linux ---

Karena Python biasanya tersedia di sebagian besar distribusi linux, jalankan saja python -m SimpleHTTPServerdi direktori proyek Anda, dan Anda dapat memuat halaman Anda dihttp://localhost:8000

Di Python 3, SimpleHTTPServermodul telah digabungkan http.server, jadi perintah barunya adalah python3 -m http.server.

Mudah, dan tidak ada risiko keamanan tanpa sengaja membuat browser Anda terbuka dan rentan.


9
INI harus menjadi jawaban yang diterima! Saya datang ke sini mencari cara yang tepat untuk menggunakan --allow-file-access-to-filesopsi baris perintah dengan Chrome (dan Opera). Jawaban Anda memberi tahu saya bahwa pertanyaan saya salah, karena alasan penting. Di atas semua itu, Anda telah menulis solusi Anda dengan cara yang ringkas dan mudah diikuti. Terima kasih satu miliar! Saya juga menyarankan, @orszaczky, agar Anda menulis jawaban yang pada dasarnya sama untuk pertanyaan SO yang ditautkan dalam pertanyaan asli ini, yaitu pertanyaan lain ini . Saya bisa menulisnya tetapi Anda pantas mendapatkan pujian.
Andrew Willems

24
Ini memang merupakan saran yang bagus, tetapi sebenarnya ini bukanlah jawaban untuk pertanyaan tersebut. Pertanyaannya bukanlah "apa cara terbaik untuk mengakses file lokal di chrome" melainkan "bagaimana cara meluncurkan dengan bendera ini". Jika Anda menyadari risikonya dan tidak membuka apa pun yang tidak Anda buat, atau jika Anda bahkan tidak online .. tidak apa-apa. Ada alasan mengapa ini berguna .. yang menurut saya adalah alasan mengapa google menjadikannya pilihan.
TinMonkey

2
Sangat lucu bahwa Anda merekomendasikan orang untuk menginstal node daripada python di Windows, hanya untuk menghosting server sederhana ini. Seolah-olah opsi python tidak sesuai untuk Windows (yang sebenarnya tidak). Bila yang Anda miliki hanyalah palu, semuanya tampak seperti paku?
prusswan

15
Jawaban ini hanya menyebarkan ketakutan. The --allow-file-access-from-filespilihan memungkinkan file://akses halaman web yang lain file://sumber daya, itu saja. Itu tidak membiarkan sistem file Anda terbuka.
Dapatkan Gratis

3
Itu bukanlah jawaban atas pertanyaan itu. Beberapa orang mungkin sangat membutuhkan ini, misalnya saya menggunakan perpustakaan aplikasi webkit khusus UIGT Koheren. Saat saya menguji, saya memerlukan akses file lokal. BTW, Firefox mendukung file: // memuat file lokal lainnya.
Eric

29

Anda mungkin ingin mencoba Server Web untuk Chrome , yang menyajikan halaman web dari folder lokal menggunakan HTTP. Ini mudah digunakan dan akan menghindari flag, yang, seperti yang disebutkan di atas, mungkin membuat sistem file Anda rentan.

Tangkapan layar Server Web untuk Chrome


3
Cemerlang. Ini adalah solusi ramah pengguna yang saya cari, terima kasih.
jay-

1
itu hebat. Persis apa yang dibutuhkan untuk masalah ini.
A. Denis

21

Pada tulisan ini, di OS X, biasanya akan terlihat seperti ini

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

Jika Anda orang aneh seperti saya, dan memasukkan aplikasi Anda ~/Applications, maka itu akan terjadi

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

Jika tidak ada yang berfungsi, ketik chrome://versionbilah alamat Chrome Anda, dan ini akan memberi tahu Anda apa permintaan "baris perintah" yang harus Anda gunakan. Tambahkan saja --allow-file-access-from-filesitu.


"chrome: // version di bilah alamat Chrome Anda, dan ini akan memberi tahu Anda permintaan" baris perintah "apa yang harus Anda gunakan" That the point
JCH77

15

Jangan lakukan ini! Anda membuka mesin Anda untuk menyerang . Sebagai gantinya jalankan server lokal. Semudah membuka shell / terminal / commandline dan mengetik

cd path/to/files
python -m SimpleHTTPServer

Kemudian arahkan browser Anda ke

http://localhost:8000

Jika Anda merasa terlalu lambat pertimbangkan solusi ini



1
Serangan itu untuk --disable-web-security, bukan --allow-file-access-from-files, jadi tidak akan berhasil - asal orang tahu. Ada risiko, tapi tidak ada yang mendekati ukuran itu.

Apa kamu sudah membaca artikelnya? Setidaknya satu serangan mungkin terjadi hanya dengan --allow-file-access-from-filesitu. Mengapa mengambil risiko sama sekali ketika cara tanpa risiko begitu sederhana?
gman

@JoeRocc, terima kasih atas downvote dan terima kasih telah membantu orang untuk tidak mengamankan mesin mereka. Anda benar-benar pahlawan
gman

1
Ini, seperti semua variasi lainnya, bukanlah jawaban yang benar, atau bahkan masalah. Sesuatu yang Anda sarankan salah secara faktual. Meluncurkan dengan opsi itu tidak membuka mesin Anda untuk menyerang. Ini, dengan cara yang terkontrol 'menonaktifkan implementasi rabun / malas dari penjepit keamanan yang terlalu luas. File HTML atau SVG lokal harus memiliki akses ke file: konten protokol, seperti file .css miliknya sendiri.
Minok

6

Jika Anda menggunakan mac, Anda dapat menggunakan perintah terminal berikut:

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

1

Keluar (paksa keluar) semua instance chrome. Jika tidak, perintah di bawah ini tidak akan berfungsi.

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

Menjalankan perintah ini di terminal akan membuka Chrome di mana pun ia dipasang.


1
"Keluar dari semua contoh" - Ini benar menurut pengalaman saya (di Linux). Tampaknya ini adalah status bersama yang hanya dapat disetel pada peluncuran baru.
Brent Bradburn

0

Di windows:

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

Di 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

simpan baris di atas sebagai file bat


taskkill / F / IM chrome.exe / T Berguna untuk tidak me-reboot komputer saya
JCH77

0

Tergantung dari file mana yang akan dimasukkan ke filesystem, selama file tersebut bukan malware, maka itu akan aman.

Namun jangan khawatir untuk menulis / membaca file ke direktori Sistem File, karena Anda dapat memperketat keamanan direktori tersebut (termasuk warisannya) dengan memberikan hak akses yang tepat dan pembatasan keamanan. misal: baca / tulis / modifikasi.

Secara default, Sistem File, Penyimpanan Lokal, dan direktori Penyimpanan terletak di direktori "\ Users [Pengguna Saat Ini] \ AppData \ Local \ Google \ Chrome \ User Data \ Default".

Namun Anda dapat menyesuaikannya dengan menggunakan tanda "--user-data-dir".

Dan ini contohnya:

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

Semoga ini bisa membantu siapa pun.


0

Ada cara cepat untuk menjalankan html yang membutuhkan izin atau diblokir oleh CORS Cukup buka folder menggunakan VSCODE dan instal ekstensi yang disebut "server langsung"

Dan kemudian klik di bagian bawah yang bertuliskan siaran langsung, itu saja. Screenshot

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.