首頁 > 後端開發 > php教程 > 為什麼我在發出 AngularJS POST 請求時收到「預檢回應具有無效的 HTTP 狀態碼 404」錯誤?

為什麼我在發出 AngularJS POST 請求時收到「預檢回應具有無效的 HTTP 狀態碼 404」錯誤?

Barbara Streisand
發布: 2024-11-03 14:15:03
原創
293 人瀏覽過

Why am I getting a

AngularJS POST 失敗:了解CORS 和預檢請求

簡介

在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 相關問題:

  • 確保Access-Control-Allow-Origin標頭設定為“*”以允許來自任何來源的請求。
  • 如果您不需要,請考慮在客戶端停用 CORS 檢查
  • 設定 Access-Control-Max-Age 標頭以指定瀏覽器應快取 CORS 預檢回應標頭的時間。

按照以下步驟,您可以解決 CORS 相關問題問題並從 AngularJS 應用程式發出成功的 POST 請求。

以上是為什麼我在發出 AngularJS POST 請求時收到「預檢回應具有無效的 HTTP 狀態碼 404」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板