問題
axiosを使って、firebase dynamiclinksのREST apiをcallした時、なぜかCORS関連のエラーが出た。
XMLHttpRequestを使ったら出ず。
対処法
両者を比較したら、withCredentials = false
が XMLHttpRequest でデフォルトになっている。
それが原因だとわかった。
ただ、通常の axios.post(..., { headers })
で書いても、withCredentials
がうまく設定できず、
以下のような書き方にした
const axiosInstance = axios.create({
withCredentials: false,
headers: {
"Content-Type": "application/json",
},
});
return axiosInstance.post(`${FIREBASE_DYNAMIC_LINK_API}?key=${API_KEY}`, {
dynamicLinkInfo: {
domainUriPrefix: DYNAMIC_LINK_PREFIX,
link: `${FUNCTION_BASE_URL}share?imgUrl=${link}`,
},
suffix: {
option: "SHORT",
},
});