簡介
在AngularJS 之間執行HTTP 交互,是POST 請求應用程式和後端伺服器有時會遇到問題。遇到的常見錯誤訊息是「預檢回應具有無效的 HTTP 狀態碼 404」。本文旨在闡明此錯誤並提供解決方案。
CORS 和預檢請求
跨來源資源共享 (CORS) 是瀏覽器使用的一種機制來管理不同來源之間的網路請求。當瀏覽器從一個來源(例如,http://localhost:8080)向另一個來源(例如,http://example.com)發送請求時,它首先使用OPTIONS 方法發送預檢請求,以確定伺服器是否允許實際請求。
理解錯誤
錯誤「Response for preflight has invalid HTTP status code 404」表示瀏覽器發送的預檢OPTIONS 請求是回傳HTTP 狀態碼404(未找到)。這意味著伺服器沒有正確回應預檢請求。
解決方案
此錯誤的解決方案在於在伺服器端正確處理 CORS 預檢請求。在問題中提供的 SlimPHP 範例中,問題是預檢請求未處理並傳回 404 狀態代碼。
要解決此問題,需要將以下程式碼新增至 SlimPHP 伺服器:
<code class="php">$app->options('/{routes:.+}', function ($request, $response, $args) { return $response; });</code>
此程式碼為應用程式中的所有路由定義了一個包羅萬象的 CORS 預檢請求處理程序。它設定必要的 CORS 標頭並返回空響應。
其他提示
此外,以下提示可能有助於防止CORS 相關問題:
按照以下步驟,您可以解決 CORS 相關問題問題並從 AngularJS 應用程式發出成功的 POST 請求。
以上是為什麼我在發出 AngularJS POST 請求時收到「預檢回應具有無效的 HTTP 狀態碼 404」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!