iT邦幫忙

2024 iThome 鐵人賽

DAY 24
0

在前端開發中,我們經常需要呼叫別人的 API 來操作處理資料。但是,有時候當我們在開發過程中嘗試呼叫第三方 API Server 時,會遇到以下類似的報錯訊息:

Access to fetch at 'https://api.example.com/data' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

這個錯誤表明瀏覽器阻止了我們的請求,因為 API Server 沒有設置 CORS 標頭允許我們的請求來源。

於是,使用 Google 搜尋相關錯誤信息
這是一個常見的跨域資源共享(CORS)問題。這些報錯通常發生在前端和後端之間屬於不同的域名端口或協議,違反了同源政策。

解決方法

  • 允許特定的域名:後端可以配置 Access-Control-Allow-Origin 標頭,將其設為允許前端應用程序的來源(例如 http://localhost:3000),或使用 * 來允許所有來源(但這可能會帶來安全問題)。
Access-Control-Allow-Origin: http://localhost:3000
  • 允許的 HTTP 方法:配置 Access-Control-Allow-Methods 標頭來指定允許的 HTTP 方法(如 GET、POST、PUT 等)。
Access-Control-Allow-Methods: GET, POST, PUT, DELETE
  • 允許的標頭:使用 Access-Control-Allow-Headers 來指定允許的自訂標頭,這對於帶有自定義認證標頭的請求特別重要。

上一篇
[Day 23] SPA、SSR、CSR、SSG 是啥呢
下一篇
[Day 25] 什麼是暫時性死區(TDZ)?
系列文
讀書筆記&心得-看完這本就會懂!帶你無痛提升JavaScript面試力:精選55道前端工程師的核心問題 × 求職加分模擬試題解析30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言