急にaxiosでURLリクエストできなくなった!?
何が起きたのか
今まで普通に運用できていたシステムでaxiosを利用してURLリクエストを行なっている箇所から上記のようなエラーが。。
from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
あ〜CORSのエラーね、
ん〜
CORS周辺なんか最近いじったかなぁ?
まぁ調べてみるか
const functions = require('firebase-functions');
const corsLib = require('cors');
const cors = corsLib();
exports.say = functions.https.onRequest((request, response) => {
return cors(request, response, () => {
response.send("Hello from Firebase!");
})
});
もともとこんな感じで書かれていました。
これの関数の中身がしっかり書かれている感じ
ちゃんとCORS許可してるぞ〜??
気がつけば3時間ハマってた。
CORSの問題ではなかった
corsのバージョンを変えてみたり、
firebaseのcloud functionsが悪いのかとデプロイし直したり、
しかし原因がわからない。
簡単なログを吐くfunctionを作成して呼んでみると、
動いた…
ますますわからん、cors全然問題ないじゃん…
色々調べてやっとわかった。
今回のバグ、もともとはメールを送るcloud functionだったのだが、
メールの本文をaxiosのgetでクエリパラメータとして渡していた。
今回ユーザーが長文を送ったことでバグが発生。
どうやらaxiosのget関数は渡せるクエリパラメータの長さに限界があるみたいだ。
axiosの関数をgetからpostに変更すると解決!
ちゃんとデータを来るときはpost使おうねというお話。
Author And Source
この問題について(急にaxiosでURLリクエストできなくなった!?), 我々は、より多くの情報をここで見つけました https://qiita.com/Liam1230/items/6bf68277732574d54ceb著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .