Open5
Cloud FunctionsでPOSTするとCORSのエラーが返ってくる

Cloud Functionsを使ってPOSTしようとしたら、CORSエラーに引っかかって時間を使ってしまったので、試したことと解決した方法のメモ。
- res.set("Access-Control-Allow-Origin", "*"); を追加
- fetchのHeadersの確認
- Preflight requestがされている
- req.rawBodyがあるらしい

res.set("Access-Control-Allow-Origin", "*");
exports.myFunction = functions.https.onRequest(async (req, res) => {
res.set("Access-Control-Allow-Origin", "*");
res.send('Hello world');
});
Access-Control-Allow-Originの設定で解決と思ったらエラーが消えず、req.bodyの中身も取れていないようだったので、Preflight requestに対する処理を書く必要があることを知る。

fetchのHeadersの確認
modeやContnet-Typeの確認と、色々試したがだめ。

Preflight requestがされている
ブラウザから確認のリクエストがされるので、それに対する処理をしないとCORSエラーとして表示されるので、ここに辿り着くまで時間がかかった。OPTIONSというmethodのリクエストがされる。

req.rawBodyがあるらしい
試してみる前に解決したので未確認。Parserの問題かと思ったが今回は違った。