首頁  >  文章  >  web前端  >  為什麼我在使用 `mode: \'no-cors\'` 的獲取請求中收到語法錯誤?

為什麼我在使用 `mode: \'no-cors\'` 的獲取請求中收到語法錯誤?

Patricia Arquette
Patricia Arquette原創
2024-11-27 19:17:14853瀏覽

Why Do I Get a SyntaxError in Fetch Requests with `mode: 'no-cors'`?

處理回應錯誤:「no-cors」模式下的語法錯誤

當使用ReactJS 中的fetch API 向REST-API 發出請求時,必須處理作出適當的回應。但是,在此過程中可能會出現常見錯誤。其中一個錯誤是「SyntaxError:意外的輸入結束」。

此錯誤通常在嘗試處理回應時遇到,特別是在呼叫 response.json() 的行處。此錯誤表示從伺服器收到的回應不完整或格式不正確。

理解 'no-cors' 模式

這個問題的癥結在於此模式的使用:取得請求中的「no-cors」設定。此設定本質上可以防止瀏覽器將 CORS 標頭附加到請求,從而使回應不透明。

不透明回應: 不透明回應禁止前端 JavaScript 程式碼存取回應正文或標頭。此限制可能會在嘗試處理回應時導致問題,因為它會阻止存取必要的資料。

解決方案:刪除「no-cors」模式

解決語法錯誤並成功處理回應,刪除 mode: 'no-cors' 設定至關重要。預設情況下,fetch API 使用「同源」模式,該模式允許瀏覽器處理 CORS 並提供對回應的存取。

替代CORS 解決方案

如果您仍然遇到刪除「no-cors」後出現CORS 問題,請考慮以下替代方案:

  • 配置伺服器: 確保發送回應的伺服器包含Access-Control-Allow-Origin 回應標頭並處理OPTIONS預檢請求。
  • CORS 代理: 使用 CORS 代理,例如https://github.com/Rob--W/cors-anywhere 繞過 CORS 問題。有關 CORS 代理的更多信息,請參閱提供的答案中的連結資源。

以上是為什麼我在使用 `mode: \'no-cors\'` 的獲取請求中收到語法錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn