I'm mencoba untuk memuat model 3D ke Three.js dengan JSONLoader
, dan bahwa model 3D dalam direktori yang sama seperti seluruh web.
I'm mendapatkan "Palang asal permintaan hanya didukung untuk HTTP."
kesalahan, tapi aku don't tahu apa yang's yang menyebabkan hal itu atau bagaimana untuk memperbaikinya.
Bola kristal saya mengatakan bahwa anda memuat model baik menggunakan file://
atau C:/
, yang tetap benar untuk pesan kesalahan karena mereka tidak http://
Jadi anda dapat menginstall webserver di PC lokal anda atau meng-upload model tempat lain dan menggunakan jsonp
dan mengubah url http://example.com/path/to/model
Asal didefinisikan pada RFC-6454 sebagai
...mereka sama-sama skema, host, dan port. (Lihat Bagian 4 untuk rincian lengkap.)
Jadi meskipun anda file yang berasal dari host yang sama (localhost
), tapi selama skema yang berbeda (http
/ file
), mereka diperlakukan sebagai asal yang berbeda.
Hanya untuk menjadi eksplisit - Ya, kesalahan yang mengatakan anda tidak bisa arahkan browser anda langsung di file://some/path/some.html
Berikut adalah beberapa pilihan untuk cepat berputar hingga web server lokal untuk membiarkan browser anda membuat file lokal
Jika anda memiliki diinstal Python...
Mengubah direktori ke folder di mana file anda some.html
atau file(s) yang ada dengan menggunakan perintah cd /path/ke/direktori/folder
Start up Python web server dengan menggunakan perintah python -m SimpleHTTPServer
Ini akan memulai sebuah web server untuk host anda seluruh daftar direktori di http://localhost:8000
python -m SimpleHTTPServer 9000
memberikan anda link: http://localhost:9000
Pendekatan ini dibangun untuk instalasi Python.
Lakukan langkah yang sama, tetapi menggunakan perintah berikut bukan python3 -m http.server
Atau, jika anda menuntut lebih responsif setup dan sudah menggunakan nodejs...
Install http-server
dengan mengetik npm install-g http-server
Mengubah ke direktori kerja anda, di mana anda`some.html kehidupan
Mulai server http dengan mengeluarkan http-server -c-1
Ini berputar sampai Node.js httpd yang menyajikan file-file di direktori anda sebagai file statis dapat diakses dari http://localhost:8080
Jika bahasa yang anda inginkan adalah Ruby ... Ruby Dewa mengatakan ini bekerja dengan baik:
ruby -run -e httpd . -p 8080
Tentu saja PHP juga memiliki solusinya.
php -S localhost:8000
Berlari untuk hari ini.
Saya menulis beberapa kode yang tampak seperti ini:
app.controller('ctrlr', function($scope, $http){
$http.get('localhost:3000').success(function(data) {
$scope.stuff = data;
});
});
...tetapi harus've tampak seperti ini:
app.controller('ctrlr', function($scope, $http){
$http.get('http://localhost:3000').success(function(data) {
$scope.stuff = data;
});
});
Satu-satunya perbedaan adalah kurangnya http://
di kedua potongan kode.
Hanya ingin menempatkan bahwa di luar sana jika ada orang lain dengan masalah serupa.
Hanya mengubah url http://localhost
bukan localhost
. Jika anda membuka file html lokal, anda harus membuat sebuah server lokal untuk melayani file html, cara paling sederhana adalah dengan menggunakan Web Server untuk Chrome
. Yang akan memperbaiki masalah ini.
Di aplikasi Android — misalnya, untuk memungkinkan JavaScript untuk memiliki akses ke aset melalui file:///android_asset/
- — menggunakan setAllowFileAccessFromFileURLs(benar)
pada WebSettings
yang anda dapatkan dari panggilan getSettings()
pada WebView
.
Bagi mereka pada Windows tanpa Python atau Node.js, masih ada solusi ringan: Luwak.
Semua yang anda lakukan adalah drag eksekusi ke mana pun akar dari server harus, dan menjalankannya. Sebuah ikon akan muncul di taskbar dan'll arahkan ke server di browser default.
Juga, Z-WAMP adalah 100% portable WAMP yang berjalan dalam satu folder, it's mengagumkan. Yang's pilihan jika anda membutuhkan PHP dan MySQL server.
I'm akan daftar 3 pendekatan yang berbeda untuk memecahkan masalah ini:
npm
paket: Menginstal live-server menggunakan npm install-g live-server
. Kemudian, pergi ke direktori itu buka terminal dan ketik live-server
dan tekan enter, halaman akan disajikan di localhost:8080
. BONUS: Ini juga mendukung hot reload secara default.target
menjadi "C:\Program Files (x86)\Google\Chrome\Aplikasi\chrome.exe" --disable-web-keamanan --user-data-dir="C:/ChromeDevSession"
dan simpan. Kemudian menggunakan Chrome buka halaman menggunakan ctrl+o
. CATATAN: Tidak TIDAK menggunakan shortcut ini untuk reguler browsing.Jika anda menggunakan Mozilla Firefox, Maka akan bekerja seperti yang diharapkan tanpa masalah apapun;
P. S. Anehnya, IntenetExplorer_Edge bekerja benar-benar baik-baik saja!!!
cara tercepat untuk saya adalah:
untuk pengguna windows menjalankan file anda pada Firefox masalah diselesaikan, atau
jika anda ingin menggunakan chrome cara termudah bagi saya adalah untuk menginstal Python 3 kemudian dari command prompt jalankan perintah python -m http.server
kemudian pergi ke http://localhost:8000/ kemudian arahkan ke file anda
python -m http.server
Saya sarankan anda menggunakan mini-server untuk menjalankan jenis aplikasi di localhost (jika anda tidak menggunakan beberapa built-in server).
Berikut ini's salah satu yang sangat sederhana untuk setup dan menjalankan:
https://www.npmjs.com/package/tiny-server
Saya mendapatkan kesalahan ini tepat ketika loading file HTML pada browser yang menggunakan json file dari direktori lokal. Dalam kasus saya, saya mampu untuk memecahkan masalah ini dengan menciptakan sebuah sederhana node server yang diperbolehkan untuk server konten statis. Aku meninggalkan kode ini di jawaban.
Saya menduga itu's telah disebutkan dalam beberapa jawaban, tetapi aku'll sedikit memodifikasi ini telah menyelesaikan jawaban kerja (lebih mudah untuk menemukan dan menggunakan).
Pergi ke: https://nodejs.org/en/download/. Install nodejs.
Menginstal http-server dengan menjalankan perintah dari command prompt npm install-g http-server
.
Mengubah ke direktori kerja anda, di mana index.html
/yoursome.html
berada.
Memulai http server dengan menjalankan perintah http-server -c-1
Buka web browser untuk http://localhost:8080
atau http://localhost:8080/yoursome.html
- tergantung pada html anda filename.
Solusi mudah bagi siapa yang menggunakan LENSA dengan Kode
I've telah mendapatkan kesalahan ini untuk sementara. Sebagian besar jawaban yang bekerja. Tapi saya menemukan solusi yang berbeda. Jika anda don't ingin bergerak dengan node.js
atau solusi lain di sini dan anda bekerja dengan file HTML (memanggil fungsi lain dari js file atau mengambil json api's) mencoba untuk menggunakan Live Server ekstensi.
Hal ini memungkinkan anda untuk membuka server hidup dengan mudah. Dan karena itu menciptakan localhost
server, masalahnya adalah menyelesaikan. Anda hanya dapat memulai localhost
dengan membuka file HTML dan klik kanan di editor dan klik Open with Live Server
.
Pada dasarnya memuat file menggunakan http://localhost/index.html
alih-alih menggunakan file://...
.
EDIT
Hal ini tidak perlu untuk memiliki .html
file. Anda dapat memulai Server Hidup dengan jalan pintas.
Tekan
(alt+L, alt+O)
untuk Membuka Server dan(alt+L, alt+C)
untuk Menghentikan server. [Pada MAC,cmd+L, cmd+O
dancmd+L, cmd+C
]
Berharap ini akan membantu seseorang :)
Salah satu cara itu bekerja loading file lokal menggunakan mereka dengan dalam folder proyek, bukan di luar folder proyek anda. Buat satu folder di bawah proyek anda contoh file mirip dengan cara kita membuat untuk gambar dan mengganti bagian mana menggunakan lokal lengkap jalan lain selain proyek jalan dan menggunakan url relatif dari file dalam folder proyek . Ini bekerja untuk saya
er. Aku hanya menemukan beberapa kata-kata resmi "Mencoba untuk memuat terbangun, remote AMD modul yang menggunakan dojo/teks plugin akan gagal karena cross-asal pembatasan keamanan. (Built versi AMD modul tidak terpengaruh karena panggilan untuk dojo/teks dieliminasi dengan membangun sistem.)" https://dojotoolkit.org/documentation/tutorials/1.10/cdn/
Saya juga telah mampu menciptakan pesan kesalahan ini ketika menggunakan tag anchor dengan berikut href:
<a href="javascript:">Example a tag</a>
Dalam kasus saya sebuah tag yang digunakan untuk mendapatkan 'Pointer Kursor' dan hal itu benar-benar dikendalikan oleh beberapa jQuery pada acara klik. Saya dihapus dan ditambahkan href kelas yang berlaku:
cursor:pointer;