経緯と解決したいこと
APIを使ってみたいと思い勉強を始めましたが、FetchでAPIを叩こうとした際に同一オリジンポリシーの問題で、APIが叩けませんでした。
なのでCORSについて、詳細なことを調べてみたのですが、分からない箇所が複数あり、その分からない箇所について教えて欲しいです。
同一オリジンポリシーは何の為にあるのか?
クライアントがAというオリジンのウェブサイトを表示している時、そこからBというオリジンのサーバーにはセキュリティの保護上通信が行うことが出来ないというのが、同一オリジンポリシーだと解釈しています。
そこでセキュリティ上、どうして問題があるのかということが気になり調べてみました。すると二つの記事がヒットしたので、スクリーンショットを貼ります。
こちらの記事ではウェブサイトの情報が悪用されるのを防ぐ為に、つまり上の例でいうとBというオリジンが持つウェブサイトの情報を守る為に同一オリジンポリシーがあると書かれています。
こちらの記事ではクライアント側の個人情報を守る為と書かれています。
同一オリジンポリシーがセキュリティ上どうして必要なのか、他のサイトでも調べてみたのですが、説明がまちまちだったり、解説が今の私には難しいレベルだったりして、疑問の解決には至りませんでした。
同一オリジンポリシーは、クライアント側や別オリジンのサイトが持つ情報が悪用されない為、二つの役割があるということなのでしょうか。
教えて欲しいです。
APIがなぜか叩けた。
fetch('https://holidays-jp.github.io/api/v1/date.json') .then(response => response.text()) .then(text => { console.log(text); });
ローカルに保存された、htmlからAPIを叩いたら、jsonが返ってきました。
私のブラウザはローカルに保存されたファイルを開いており、そのファイルから「https://holidays-jp.github.io/api/v1/date.json」
へと通信を行おうとすると、同一オリジンポリシーの問題で通信ができないはずです。
一体どうしてAPIを叩けたのでしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/25 09:21
2019/09/25 09:25
2019/09/25 09:28
2019/09/25 09:39
2019/09/25 09:40