mr_maestro
@mr_maestro

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Next.jsアプリでのCorsエラーについて

解決したいこと

Next.JSアプリでIPFSサイトから画像データを持ってこられるようにしたいです。

例)
Next.jsからweb3ライブラリを使って、NFTをリストアップするアプリを作ろうとしています。
記事を投稿する機能の実装中にエラーが発生しました。解決方法を教えて下さい。

・環境
Amazon Cloud9
Next.js
Piñata ipfs
Infura
Solidity

発生している問題・エラー

Access to XMLHttpRequest at 'https://gateway.pinata.cloud/ipfs/***' from origin 'https://***.vfs.cloud9.ap-northeast-1.amazonaws.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

### 自分で試したこと

1.next.config.jsファイルに以下を追加。(https://monotein.com/blog/nextjs-vercel-server-cors)

const nextConfig = {
  reactStrictMode: true,
  // ↓追加
  async headers() {
    return [
      {
        "source": "/(.*)",
        "headers": [
          { "key": "Access-Control-Allow-Credentials", "value": "true" },
          { "key": "Access-Control-Allow-Origin", "value": "*" },
          { "key": "Access-Control-Allow-Methods", "value": "GET,OPTIONS,PATCH,DELETE,POST,PUT" },
          { "key": "Access-Control-Allow-Headers", "value": "X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version" }
        ]
      }
    ]
  },
  // ↑追加
}

module.exports = nextConfig

2.next.config.jsファイルに以下を追加

// next.config.js
module.exports = {
    async rewrites() {
        return [
          {
            source: '/api/:path*',
            destination: 'https://api.example.com/:path*',
          },
        ]
      },
  };
1

1Answer

外部サイトがCORSで禁止している場合は無理な気もするんですが、どうなんでしょう

1Like

Comments

Your answer might help someone💌