【GCP】Cloud Run 前端 Service 請求後端Service 的 API,出現405 Method Not Allowed

問題原因

今天使用axios.post()方法打/memberLogin API到後端 Spring Boot,
結果回傳 405 Method Not Allowed,
前端跟後端都使用 Post Method,
因此先排除 http method 的問題,
參考文章後,覺得可能是 header 的 content-type 要是 application/json 才會正確。

看到類似文章提到以下可能的情況

解決方法

最後發現是 vite proxy 設定的問題,
在 local 端可以反向代理,並打出 API,
但在雲端 Cloud Run 就會失敗,
所以改成直接打網址

proxy: {
  // 將所有以 /api 開頭的請求轉發到後端服務器
  '/api': {
    // before
    // target: 'http://localhost:8080',
    
    // after
    target: 'https://spring-boot-deployment-1-xpf6zdjama-de.a.run.app',
    changeOrigin: true,
    secure: true,
    // rewrite: (path) => path.replace(/^\/api/, ''),
  },
},

參考資料

  1. 一则“HTTP 405 Method Not Allowed”的解决办法

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *