iT邦幫忙

0

後端node.js部署在Heroku已設定cors,前端還是遇到CORS問題

  • 分享至 

  • xImage

部署在Heroku後,後端使用CORS已設定{origin: "*"},但是前端React.js還是被CORS擋住
後端Node.js:
https://ithelp.ithome.com.tw/upload/images/20220308/20147187E5PfENwcEX.png
錯誤:
https://ithelp.ithome.com.tw/upload/images/20220308/20147187IoJ8rSW8NW.png
https://ithelp.ithome.com.tw/upload/images/20220308/20147187gFRoX09a6M.png
/images/emoticon/emoticon02.gif

Postman測試:
https://ithelp.ithome.com.tw/upload/images/20220308/20147187fNrHWlHFO4.png
後端是個簡單的爬蟲,在本地測試時,完成時會回傳訊息回來,部署到Heroku後,還是能接收到request,後端程序還是能正常運行,但是幾秒後前端就會收到上面錯誤訊息導致網頁掛掉。

想請問大神們,還有哪邊需要設定嗎?

天黑 iT邦研究生 5 級 ‧ 2022-03-08 17:37:44 檢舉
可以先用postman測試一下有沒有通,我記得cors對它沒有用,接著確認一下 api呼叫的domain 我好奇port 3000怎樣出現的....
慢慢key iT邦新手 5 級 ‧ 2022-03-08 18:49:45 檢舉
因為我是用localhost:3000,所以才出現,剛剛有聽大大的去用Postman測試,照片以補
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
1
fillano
iT邦超人 1 級 ‧ 2022-03-09 06:49:45
最佳解答

這種問題關鍵在header,所以把完整的request/response header貼出來啦。

從瀏覽器看到的response header,完全沒有CORS相關header, 所以出現錯誤。從request開始確認的話:你本地端程式有沒有在對heroku上伺服器的請求中加上origin header?

慢慢key iT邦新手 5 級 ‧ 2022-03-09 18:43:56 檢舉

有的,後來從Request下去找,原來是我的Request時間過長,超過Heroku設定的30s,所以才一開始正常,後來才出錯,感謝提醒

0

後端部分我不太清楚
不過可參考此篇
最後一點 sop 檢查是否漏掉

慢慢key iT邦新手 5 級 ‧ 2022-03-08 18:50:21 檢舉

有照SOP檢查,可是還是沒辦法,感謝大大提供方法

先試著把 cors 的設定砍掉看看
畢竟 cors 預設是全開

0
HAO
iT邦研究生 1 級 ‧ 2022-03-08 17:18:56

你好,有沒有可能是 Server crash 了呢?
去 Heroku 看一下 Logs,如果有發生錯誤的話確實有可能 status code 回 503

慢慢key iT邦新手 5 級 ‧ 2022-03-09 18:41:37 檢舉

感謝大大提醒,有去仔細看一下Log,後端程式有正常執行,不過在30秒時有出現一個錯誤,研究一下原來是Heroku有設定Request timeout 30秒,所以才會報錯

我要發表回答

立即登入回答