Tak, to nie jest tak naprawdę wiele domen, gdy plik znajduje się w tym samym folderze co strona internetowa, teraz jest ... Odkryłem, że jeśli używasz Firefox zamiast Chrome, problem zniknie.
Moja kryształowa kula mówi, że ładujesz model używając albo file://albo C:/, który pozostaje wierny komunikatu o błędzie, ponieważ nie sąhttp://
Możesz więc zainstalować serwer WWW na lokalnym komputerze lub przesłać model w inne miejsce, a następnie użyć jsonpi zmienić adres URL nahttp://example.com/path/to/model
Wyobraź sobie, czy jest to dozwolone, i aplikację internetową, w której autor strony używa czegoś podobnego, load('file://C:/users/user/supersecret.doc')a następnie przesyła zawartość na swój serwer za pomocą ajax itp.
W odpowiedzi na komentarz LukeP w Pythonie 2.7 polecenie działa zgodnie z instrukcjami $ python -m SimpleHTTPServer, co powoduje wyświetlenie komunikatu: Serving HTTP on 0.0.0.0 port 8000 ...Jeśli przeliterujesz nazwę modułu, np. $ python -m SimpleHttpServerWtedy otrzymasz komunikat o błędzie No module named SimpleHttpServerOtrzymasz podobny komunikat o błędzie, jeśli masz python3 zainstalowany (v. python 2.7). Można sprawdzić wersję Pythona za pomocą polecenia: $ python --version. Możesz również określić port, na którym chcesz nasłuchiwać w następujący sposób:$ python -m SimpleHTTPServer 3333
Serwer python obsługuje pliki z katalogu, w którym uruchamiasz serwer. Jeśli więc pliki, które chcesz obsłużyć, znajdują się w / Users / 7stud / angular_projects / 1app, uruchom serwer w tym katalogu, np . $ cd ~/angular_projects/1appWtedy $ python -m SimpleHTTPServer. W przeglądarce wpisz adres URL http://localhost:8000/index.html. Możesz także zażądać plików w podkatalogach katalogu, w którym uruchomiłeś serwer, np.http://localhost:8000/subdir/hello.html
Słyszałem, że Python jest prosty i potężny, podobnie jak język „X”, ale to jest śmieszne! Nie trzeba instalować XAMPP ani instalować prostego serwera HTTP z węzłem do obsługi plików statycznych - jedno polecenie i boom! Dziękuję bardzo, oszczędza dużo czasu i problemów.
Sugerowałbym używanie Chromium tylko do lokalnego debugowania (zaczynając od flagi --allow-file-access-from-files). Oznacza to używanie Chrome do zwykłego przeglądania stron internetowych i używanie Chromium jako domyślnej aplikacji do plików HTML.
Po prostu zmień adres URL na http://localhostzamiast localhost. Jeśli otworzysz plik HTML z lokalnego, powinieneś utworzyć serwer lokalny, który będzie obsługiwał ten plik HTML, najprostszym sposobem jest użycie Web Server for Chrome. To rozwiąże problem.
W aplikacji na Androida - na przykład, aby umożliwić JavaScript, aby mieć dostęp do zasobów poprzez file:///android_asset/- stosowania setAllowFileAccessFromFileURLs(true)na WebSettingsktóre można uzyskać z wywołaniem getSettings()na WebView.
Znakomity! Właśnie mieliśmy przepisać metody wstrzykiwania JSON do zmiennych .. ale to działa! webView.getSettings (). setAllowFileAccessFromFileURLs (true);
najszybszym sposobem dla mnie było: dla użytkowników systemu Windows uruchom plik na Firefox rozwiązany problem, lub jeśli chcesz skorzystać z Chrome najłatwiejszym sposobem dla mnie było zainstalowanie Pythona 3, a następnie z wiersza polecenia Uruchom polecenie, python -m http.server a następnie przejdź do http: // localhost: 8000 / następnie przejdź do swoich plików
Wymienię 3 różne podejścia do rozwiązania tego problemu:
Korzystanie z bardzo lekkiego npmpakietu : Zainstaluj serwer na żywo za pomocą npm install -g live-server. Następnie przejdź do tego katalogu otwórz terminal i wpisz live-serveri naciśnij Enter, strona zostanie wyświetlona localhost:8080. BONUS: Domyślnie obsługuje również ponowne ładowanie na gorąco.
Korzystanie z lekkiej aplikacji Google Chrome opracowanej przez Google : Zainstaluj aplikację, a następnie przejdź do karty aplikacji w Chrome i otwórz aplikację. W aplikacji wskaż odpowiedni folder. Twoja strona zostanie wyświetlona!
Modyfikowanie skrótu Chrome w systemie Windows : Utwórz skrót przeglądarki Chrome. Kliknij ikonę prawym przyciskiem myszy i otwórz właściwości. We właściwościach, edytować targetdo "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-web-security --user-data-dir="C:/ChromeDevSession"i oszczędzać. Następnie za pomocą Chrome otwórz stronę za pomocą ctrl+o. UWAGA: NIE używaj tego skrótu do regularnego przeglądania.
Dla tych, którzy korzystają z systemu Windows bez Pythona lub Node.js, nadal istnieje lekkie rozwiązanie: Mongoose .
Wystarczy przeciągnąć plik wykonywalny w dowolne miejsce, w którym powinien znajdować się katalog główny serwera, i uruchomić go. Ikona pojawi się na pasku zadań i przejdzie do serwera w domyślnej przeglądarce.
Ponadto Z-WAMP jest w 100% przenośnym WAMP działającym w jednym folderze, jest niesamowity. Jest to opcja, jeśli potrzebujesz szybkiego serwera PHP i MySQL.
Ten błąd pojawia się od jakiegoś czasu. Większość odpowiedzi działa. Ale znalazłem inne rozwiązanie. Jeśli nie chcesz zajmować się tutaj node.jsani żadnym innym rozwiązaniem i pracujesz z plikiem HTML (wywoływanie funkcji z innego pliku js lub pobieranie Json API), spróbuj użyć rozszerzenia Live Server .
Pozwala łatwo otworzyć serwer na żywo. A ponieważ tworzy localhostserwer, problem został rozwiązany. Możesz po prostu localhostotworzyć plik HTML i kliknąć edytor prawym przyciskiem myszy i kliknąć Open with Live Server.
Zasadniczo ładuje pliki za pomocą http://localhost/index.htmlzamiast za pomocą file://....
EDYTOWAĆ
.htmlPlik nie jest konieczny . Możesz uruchomić Serwer Live za pomocą skrótów.
Naciśnij, (alt+L, alt+O)aby otworzyć serwer i (alt+L, alt+C)zatrzymać serwer. [Na MAC cmd+L, cmd+Oi cmd+L, cmd+C]
Właśnie ten błąd pojawiał się podczas ładowania pliku HTML w przeglądarce, która używała pliku json z katalogu lokalnego. W moim przypadku udało mi się to rozwiązać, tworząc prosty serwer węzłów, który pozwalał na serwowanie zawartości statycznej. Zostawiłem kod do tego przy innej odpowiedzi .
Podejrzewam, że jest już wspomniany w niektórych odpowiedziach, ale nieznacznie go zmodyfikuję, aby uzyskać pełną odpowiedź roboczą (łatwiejszą do znalezienia i użycia).
Po prostu mówi, że aplikacja powinna być uruchomiona na serwerze WWW. Miałem ten sam problem z Chrome, uruchomiłem tomcat i przeniosłem tam swoją aplikację, i zadziałało.
er. Właśnie znalazłem kilka oficjalnych słów: „Próba załadowania niezbudowanych, zdalnych modułów AMD korzystających z wtyczki dojo / text zakończy się niepowodzeniem z powodu ograniczeń bezpieczeństwa dotyczących różnych źródeł. (Nie ma to wpływu na wbudowane wersje modułów AMD, ponieważ połączenia do dojo / text są eliminowane przez system kompilacji.) „ https://dojotoolkit.org/documentation/tutorials/1.10/cdn/
Jednym ze sposobów, w jaki działało ładowanie plików lokalnych, jest używanie ich w folderze projektu zamiast poza folderem projektu. Utwórz jeden folder w przykładowych plikach projektu, podobnie jak my tworzymy dla obrazów i zastąp sekcję, w której używasz pełnej ścieżki lokalnej innej niż ścieżka projektu i użyj względnego adresu URL pliku w folderze projektu. To zadziałało dla mnie
Nie można załadować statycznych plików lokalnych (np. Svg) bez serwera. Jeśli na komputerze jest zainstalowany NPM / YARN, możesz skonfigurować prosty serwer http za pomocą „ serwera http ”
W moim przypadku użyto tagu, aby uzyskać „kursor wskaźnika”, a zdarzenie było faktycznie kontrolowane przez jQuery po kliknięciu. Usunąłem href i dodałem klasę, która ma zastosowanie:
@ agupta231 Moduł przeglądarki internetowej ma argumenty, które umożliwiają różne rodzaje „otwierania”, np. otwórz w bieżącej karcie, nowej karcie, nowym oknie itp.
Jeśli nalegasz, aby .htmlplik był uruchamiany lokalnie i nie był serwowany na serwerze WWW, możesz w pierwszej kolejności zapobiec pojawianiu się żądań krzyżowych, udostępniając problematyczne zasoby.
Miałem ten problem podczas próby udostępniania .jsplików file://. Moim rozwiązaniem było zaktualizowanie skryptu kompilacji w celu zastąpienia <script src="...">tagów <script>...</script>. Oto gulppodejście do tego:
1. uruchomić npm install --save-devdo opakowań gulp, gulp-inlinea del.
2. Po utworzeniu a gulpfile.jsdo katalogu głównego dodaj następujący kod (po prostu zmień ścieżki do plików, które Ci odpowiadają):
let gulp = require('gulp');letinline= require('gulp-inline');let del = require('del');
gulp.task('inline',function(done){
gulp.src('dist/index.html').pipe(inline({
base:'dist/',
disabledTypes:'css, svg, img'})).pipe(gulp.dest('dist/').on('finish',function(){
done()}));});
gulp.task('clean',function(done){
del(['dist/*.js'])
done()});
gulp.task('bundle-for-local', gulp.series('inline','clean'))
Uruchom gulp bundle-for-locallub zaktualizuj skrypt kompilacji, aby uruchomić go automatycznie.
Można zobaczyć szczegółowe problemy i rozwiązania dla mojego przypadku tutaj .
Cordova to osiągnąć. Nadal nie mogę zrozumieć, jak to zrobiła Cordova. To nawet nie przechodzi przez powinnaInterceptRequest.
Później dowiedziałem się, że kluczem do załadowania dowolnego pliku z lokalnego jest: myWebView.getSettings (). SetAllowUniversalAccessFromFileURLs (true);
A jeśli chcesz uzyskać dostęp do dowolnego zasobu HTTP, przeglądarka internetowa sprawdzi metodę OPTIONS, którą możesz udzielić dostępu za pośrednictwem WebViewClient.shouldInterceptRequest, zwracając odpowiedź, a dla następującej metody GET / POST możesz po prostu zwrócić wartość null.
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.