0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

JavaScriptでCORS対策で叩けないAPIを強引に叩く

Last updated at Posted at 2020-05-22

起こったこと

とあるAPI叩きたくてフロントとなるJavaScriptからFetchやXMLHttpRequestを使ってアクセスしようとすると、
そのAPIのサーバのCORSの設定でアクセスできなかった。
スクリーンショット 2020-05-22 16.23.10.png

もちろん、普通にブラウザで開くと表示はされる。

本来これはサーバー側で許可を与えればよいが、それはAPIを作った側がやることになるので利用する側の自分は諦めるしかないのかと思っていた。

##解決方法
フロントとなるJavaScriptからFetchやXMLHttpRequestを使ってアクセスするとアクセス制限でエラーが出るが、PHPでcurl使ってアクセスしてみるとデータ取得できた。

てことは、

自分が持っているサーバーでPHPでcurl使ってそのCORS対策されているAPI叩く
↓
その結果を取得できたデータを、自分のサーバーのAPIとしてデータ取得できるようにする
(とあるAPIから得られたデータをそのまま返すAPIを作る)
↓
自分のサーバーでCORSの設定を変えて全てのサイトからアクセスできるようにする

つまり、外部のAPIを、自分のサーバーを介したAPIにしちゃうことで成功する。

APIを叩くPHPファイルに以下を追加したら全てのサイトからアクセスできるようになる。

anime-suko.php
header('Access-Control-Allow-Origin: *');

感想

これはあくまでも個人利用にとどめておいたほうがよさそう

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?