👯♂️
【やさしい】CORSとは【紙芝居】
はじめに
CORSとはCross-Origin Resource Sharing(オリジン間リソース共有)の略で、オリジンが違うときにその通信を許可するかどうか決めるブラウザの機能です。
CORSとは何か?のゆる〜い概要を紙芝居形式で軽くまとめました。
CORSとは
フロントのwebアプリやサーバーサイドのAPIなどはそれぞれのサーバー上で立っていて、それぞれオリジンがあります。
オリジンとはドメインにポートをくっつけたようなものです。
サーバーサイド同士の通信では特に何も問題なく通信できます。
しかしフロント側からサーバーサイドにアクセスしようとするとブラウザが入ってくるので、邪魔されてアクセスできないです。
これは問い合わされる側が問い合わせる側のオリジンを、CORSの許可設定に追加していなかったので起こったことです。ブラウザくんがサーバーサイドくんのCORS設定を見てフロントくんのリクエストを通すかどうか判断していました。
サーバーサイドにCORSの許可設定を追加してあげれば通信ができるようになります。
Flaskの例
Flaskの場合は、以下のようにCORS(hogehoge)
で設定してやればいいです。
from flask import Flask
from flask_cors import CORS
app = Flask(__name__)
CORS(app)
詳しくは以下参照
参考
Discussion