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

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

新規登録して質問してみよう
ただいま回答率
85.35%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

3720閲覧

JavaScriptでcsvを読み込んで配列に格納したい

oika77

総合スコア184

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2020/11/05 06:21

質問は表題の通りです。参考にしたサイト
自分なりに色々と調べてみましたが、どうしてもXMLHttpRequest()を使うようです。これを使うのはいいのですが、エラーが出てきます。以下です。

エラー responce.js:35 Access to XMLHttpRequest at 'file:///Users/koko/Desktop/resultBag.csv' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, chrome-untrusted, https.

これの解決方法としてもセキュリティーの設定をオフにしないといけないみたいなことが書かれていました。
ただセキュリティーをオフにするのは少し抵抗があります。

そして単純にcsvの内容を配列に格納するだけなのにめんどくさいことをしないといけないのでしょうか。
もっと簡単にできないでしょうか。

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

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

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

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

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

nerianighthawk

2020/11/05 06:38

このプログラムはローカルで実行しているのでしょうか? どちらにせよ、ローカルの /Users/koko/Desktop/resultBag.csv を参照しに行っています。 どういう環境でプログラムを実行しているのか記載いただかないと、回答が難しいです。
oika77

2020/11/05 06:42

ローカルで実行しています。
nerianighthawk

2020/11/05 06:44

ローカルサーバを立てているような状況ですか? それとも、HTMLのスクリプトタグで埋め込み、ブラウザで実行しているような状況でしょうか?
oika77

2020/11/05 06:52

あまり詳しくなくて、言葉足らず申し訳ありません。HTMLのスクリプトタグで埋め込みをしていて、クロームで表示させようとしています。
guest

回答2

0

urlの先頭がfileになっているので、fileプロトコルを利用しています。

ローカル(file:///)上で外部ファイル読み込みのセキュリティ制約を回避するいくつかの方法

今やろうとしていることは上記の記事と同じことだと思いますが、この記事の最後に書かれている「ローカルでWebサーバを動かす」が一番簡単な方法になるかと思います。

PCのOSによって手軽にサーバーを立てる方法は、自分で少し調べてみるのがいいかなと、わからなければ再度別の質問を立ててみるのもありかと思います。(その場合は、OSなどの情報、どういう手順でサーバーを構築しようとして、どういうところでつまづいたなどの情報があると回答がつきやすいです。)

投稿2020/11/05 07:13

hayato7

総合スコア1135

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

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

oika77

2020/11/05 09:06

自分でサーバーを立てることができました。ご回答ありがとうございました。
guest

0

ベストアンサー

状況を把握できたため、回答します。
まず、XMLHttpRequest()は通常のネットワークの通信によってファイルを取得します。
さらに file:///Users/koko/Desktop/resultBag.csv というのはローカルファイルを指定します。
これは、ネットワーク上にサーバがあったとしても、そのページを表示すると、表示しているPCのローカルのファイルを参照しに行くことになります。
これがセキュリティチェック無しでOKにしてしまうと大変なことになることになります(サーバを立てている人が無差別に攻撃できてしまいます)。

今回の場合は、HTMLにスクリプトタグを書いてChromeで実行しているとのことなので、一時的であればセキュリティを許可してしまうことは問題ないと思います。
一方で、サーバを立てることを想定している場合は、そのサーバ内にファイルを入れて、そのサーバのurlを指定してあげればいいかと思います。
ローカルでサーバを立てて試したい場合は以下のサイトが参考になるかと思います。
お手軽なWebサーバーの立て方

投稿2020/11/05 07:20

nerianighthawk

総合スコア544

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

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

oika77

2020/11/05 09:06

色々と詳しくありがとうございます。最終的にはweb server for chromeを使ってうまく出力させることができました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問