【flask】Replyヘッダーに「Access-Control-Allow-Origin」を追加する【お家IT#8】
本件の実装の一部
motojapan.hateblo.jp
前回の続き
motojapan.hateblo.jp
目次
前回は、base64でバックエンドに画像を送信したが、次のエラーが表示れている。
XMLHttpRequest cannot load https://192.168.0.100:12345/hoge_image_processing. No ´Access―Control―Allow―Origin’ header is present on the requested resource. Origin 'https://192.168.0.100:12345' is therefore not allowed access.
結局は、バックエンドが返信してくるパケットのreplay headerに「Access―Control―Allow―Origin」がないというエラー。
対策
Decoratorを使うと簡単にheaderに´Access―Control―Allow―Origin’と設定できる。
参考資料のコードを参考にすると動く。
(私の環境ではうまく動かない関数があったりしたので、片っ端から修正)
@crossdomainの使い方は下記の通り。
... @app.route('/hoge_image_processing', methods=['POST']) @crossdomain(origin='*') def image_processing(): ...
これで簡単にヘッダーに必要情報が付加でき、エラーも解消された。
次回は、画像処理結果を通知するために使用する、flask->javascriptへのjsonデータ返信について纏める。