みなさんこんにちは!
イザナギです。
さて!前回に引き続き、Nuxt3でブログを作っていた時の話を書いていきたいと思います。
私はヘッドレスCMSとして、microcmsを利用しているのですが、vueファイル内でuseFeachを利用して、ブログデータを取得しようとしていました。
しかし、ブラウザで確認してみるとCORSエラーが炸裂!
何!?表示できないだと...
対応策を調べてみると、サクッと見つかりました。(同じような事象に悩んでいた先人がいらっしゃいました。)
https://qiita.com/tikaranimaru/items/bbbd1f972dc238121d03
なるほど!こういう時に「server」フォルダを使うのですね。
import type { IncomingMessage, ServerResponse } from "http";
import axios from 'axios'
import config from '#config'
let url: string = `https://${config.MICRO_CMS_SERVICE_DOMAIN}.microcms.io/api/v1/blog`
const API_HEAD = {
headers: {
"X-MICROCMS-API-KEY": config.MICRO_CMS_API_KEY,
}
}
export default async (req: IncomingMessage, res: ServerResponse) => {
if (req.method != 'GET') {
console.log(req.method)
res.statusCode = 500
res.end()
}
let data: Array
await axios.get(
`${url}`,
API_HEAD
).then(res => {
data = res.data;
});
const json = JSON.stringify(data)
res.statusCode = 200
res.setHeader('Content-Type', 'application/json')
res.end(json)
}