首頁 >web前端 >js教程 >為什麼我對 AWS API 的 AngularJS ngResource 請求未通過預檢存取控制檢查?

為什麼我對 AWS API 的 AngularJS ngResource 請求未通過預檢存取控制檢查?

Linda Hamilton
Linda Hamilton原創
2024-12-28 04:32:11572瀏覽

Why is my AngularJS ngResource request to an AWS API failing the preflight Access-Control check?

飛行前請求未透過存取控制檢查

遇到錯誤

使用 ngResource 與 Amazon Web Services 上的 REST API互動時,使用者可能會遇到以下錯誤:

XMLHttpRequest cannot load
http://server.apiurl.com:8000/s/login?login=facebook. Response to
preflight request doesn't pass access control check: No
'Access-Control-Allow-Origin' header is present on the requested
resource. Origin 'http://localhost' is therefore not allowed access.
Error 405

瞭解CORS

此錯誤源自於跨域資源共享 (CORS)。 CORS 強制實施安全性限制,防止一個網域(例如 localhost)的資源直接存取另一個網域(例如 server.apiurl.com)的資源。

故障排除選項

解決問題,請考慮以下方法:

  • 停用CORS: 使用瀏覽器暫時停用或Chrome 設定暫時停用CORS 以進行測試。
  • 使用瀏覽器外掛程式: 安裝瀏覽器外掛程式以啟用跨來源請求。
  • 利用代理:實作像 nginx 這樣的代理,將請求從本地主機轉送到遠端伺服器,從而繞過網域限制。
  • 設定伺服器:確保 EC2 執行個體上的 Web 伺服器針對 CORS 正確配置。請參閱特定伺服器文件以取得指導。

跨域請求的含義

需要注意的是,從 localhost 存取外部域構成跨域請求。這會觸發 CORS 安全機制,防止未經授權的存取。

繞過 CORS

雖然停用 CORS 或使用插件可以是測試的快速解決方案,但它並不能解決跨域的根本問題。原點通訊。使用代理或配置伺服器以允許跨網域存取是一種更全面的方法。

以上是為什麼我對 AWS API 的 AngularJS ngResource 請求未通過預檢存取控制檢查?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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