갑자기 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 사용하자는 이야기.

좋은 웹페이지 즐겨찾기