首頁  >  文章  >  web前端  >  ## 儘管期望得到不透明的回應,但為什麼在使用「no-cors」模式下的 fetch API 時會出現語法錯誤?

## 儘管期望得到不透明的回應,但為什麼在使用「no-cors」模式下的 fetch API 時會出現語法錯誤?

Linda Hamilton
Linda Hamilton原創
2024-10-25 22:44:29454瀏覽

## Why am I getting a SyntaxError when using fetch API with 'no-cors' mode despite expecting an opaque response?

儘管回應預期不透明,但在「no-cors」模式下取得API 錯誤

問題:嘗試使用模式集取得API ' no-cors' 會導致在回應response.json() 時出現語法錯誤。

說明:

將 fetch API 與 'no-cors' 結合使用時模式下,瀏覽器將靜默地失敗任何需要 CORS 權限的請求。拋出錯誤訊息“Unexpected end of input”,因為取得操作返回不透明回應(意味著無法存取其內容)。

解決方案:

「如果不透明的回應滿足您的需求」表示伺服器未向該請求授予 CORS 權限。要解決此問題,您應該:

  • 刪除“no-cors”模式:將模式設為“cors”或完全忽略它。
  • 設定伺服器授予CORS 權限: 將適當的CORS 標頭新增至伺服器的回應中,例如針對所有來源的「Access-Control-Allow-Origin: *」或「Access -Control-Allow-Origin: https” ://mysite.com' 對於特定來源。

附加說明:

CORS(跨來源資源共享)可防止跨站點腳本( XSS)攻擊,透過防止對不同來源的資源進行未經授權的存取。應謹慎授予 CORS 權限以維護安全。

參考:

  • [CORS 概述](https://stackoverflow.com/questions/ 6359744/什麼是跨域資源共享-cors)

以上是## 儘管期望得到不透明的回應,但為什麼在使用「no-cors」模式下的 fetch API 時會出現語法錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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