質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Three.js

Three.jsはWebGLをサポートしているJavaScriptの3D描画用ライブラリです。

Q&A

解決済

1回答

4617閲覧

threejs TextureLoader クロスドメインエラー

cheche0830

総合スコア187

Three.js

Three.jsはWebGLをサポートしているJavaScriptの3D描画用ライブラリです。

0グッド

0クリップ

投稿2018/07/22 06:35

THREE.WebGLRenderer 94

var width = window.innerWidth; var height = window.innerHeight; var side = Math.min(width, height) / 30; var scene; var camera; var renderer; var mesh; var controls; function init() { scene = new THREE.Scene(); camera = new THREE.PerspectiveCamera(30, width / height, 1, 1000); renderer = createRenderer(width, height); mesh = createMesh(side); camera.position.z = 70; camera.position.x = 70; camera.position.y = 70; scene.add(mesh); controls = new THREE.OrbitControls(camera); controls.autoRotate = true; update(); } function createRenderer(width, height) { var renderer = new THREE.WebGLRenderer(); renderer.setSize(width, height); document.getElementById("test").appendChild(renderer.domElement); return renderer; } function createMesh(radius) { var path = "https://hoge.com/img/"; var l1 = new THREE.TextureLoader().load(path+"texture4.png"); var l2 = new THREE.TextureLoader().load(path+"texture4.png"); var l3 = new THREE.TextureLoader().load(path+"texture3.png"); var l4 = new THREE.TextureLoader().load(path+"texture1.png"); var l5 = new THREE.TextureLoader().load(path+"texture0.png"); var l6 = new THREE.TextureLoader().load(path+"texture2.png"); var cubeGeometry = new THREE.CubeGeometry(49, 18, 38,5,5,5); var texture1 = new THREE.MeshBasicMaterial({ map: l1});//右横 var texture2 = new THREE.MeshBasicMaterial({ map: l2});//左横 var texture3 = new THREE.MeshBasicMaterial({ map: l3});//上 var texture4 = new THREE.MeshBasicMaterial({ map: l4});//下 var texture5 = new THREE.MeshBasicMaterial({ map: l5});//手前 var texture6 = new THREE.MeshBasicMaterial({ map: l6});//奥 var material = new THREE.MultiMaterial([texture1, texture2, texture3, texture4, texture5, texture6]); var mesh = new THREE.Mesh(cubeGeometry, material); return mesh; } function update() { controls.update(); requestAnimationFrame(update); renderer.render(scene, camera); } window.addEventListener('DOMContentLoaded', init);

has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin

htmlの置き場はhttp://localhost/で
画像がhttps://hoge.com/なので、エラーが出ていると思うのですが、

↓を試したのですがうまくいきません・・
http://phiary.me/three-js-use-cross-origin-image/

他に方法ありますでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin

クロスドメイン参照で画像を読み込む場合、クライアント側とサーバー側の双方許可する必要があります。
今回の場合は、クライアント側ではなくサーバー側の設定の問題と思います。
読み込もうとしている画像についてサーバー側で正しいヘッダ情報を返しているか確認してみてもらえますか?

以下はヘッダ情報の確認方法です。
なお github 上でホストされている画像の場合は、サーバー側で許可設定が行われている為、読み込めるようです。

http://runstant.com/cx20/projects/5bfdb391/
クロスドメイン参照で画像を読み込む例]

投稿2018/07/22 11:40

cx20

総合スコア4633

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cheche0830

2018/07/22 13:36

ありがとうございます!!!! そんな確認方法があったのですね。 見たところ、Provisional headers are shown とエラーがでて詳しいheader情報まではみれませんでしたが、 やはりサーバー側の問題のようですね。。 なにか設定なので変更可能なものでしょうか? 無理そうであれば、githubに上げようと思います!
cheche0830

2018/07/22 13:51

すいません!続けて質問してしまうのですが、 githubに画像をアップして利用するのはどうやるんでしょうか? 普通にリポジトリ作る感じではなさそうですよね?
cx20

2018/07/22 14:09

> なにか設定なので変更可能なものでしょうか? サーバー側の設定に詳しい訳ではないので、あまり助言は出来ないのですが・・ Webサーバー側で「Access-Control-Allow-Origin '*'」を返す設定にすれば、誰でもアクセスできるようになるようです。 ただ、セキュリティ的に望ましいものではないので、むやみに設定はしない方が良いと思います。 以下はCORSに関する参考情報です。 https://qiita.com/tomoyukilabs/items/81698edd5812ff6acb34 テスト的に試すレベルであれば github でホストさせてもらう方法が手軽だとは思います。
cx20

2018/07/22 14:21 編集

> githubに画像をアップして利用するのはどうやるんでしょうか? > 普通にリポジトリ作る感じではなさそうですよね? GitHub Pages として公開するか、RawGit( https://rawgit.com/ )を使ってみて下さい。 RawGit は github のコンテンツを CDN で公開するサービスになります。 GItHub Pages に公開する手順については、下記を参照下さい。 ■ GitHub Pages を使った静的サイトの公開方法が、とても簡単になっていた | Tips Note by TAM https://www.tam-tam.co.jp/tipsnote/html_css/post11245.html
cheche0830

2018/07/22 14:26

もろもろありがとうございました!! サーバーはaspの方に聞いてみます! githubの方は無事公開できました!!! 重ね重ねありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問