首頁 >後端開發 >php教程 >為什麼我的 AngularJS POST 請求失敗並出現預檢請求 404?

為什麼我的 AngularJS POST 請求失敗並出現預檢請求 404?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-03 14:56:30307瀏覽

Why Does My AngularJS POST Request Fail with a 404 for the Preflight Request?

AngularJS POST 請求失敗:預檢請求的HTTP 404

在AngularJS 中,POST 請求期間可能會出現未解決的「RealXML無法載入”錯誤。這是由於實際 POST 之前的預檢請求的 HTTP 狀態碼 (404) 無效所致。預檢請求旨在檢查請求的操作是否被允許,確保遵守跨來源資源共享 (CORS) 政策。

根本原因:缺少 CORS 標頭

錯誤的根本原因在於伺服器未能正確處理預檢 OPTIONS 請求。若要啟用跨來源請求,伺服器必須設定適當的 CORS 標頭。

解決方案:在伺服器端新增CORS 標頭

在SlimPHP 中,您可以將CORS 標頭新增至回應物件:

<code class="php">$app->response()->headers->set('Access-Control-Allow-Headers', 'Content-Type');
$app->response()->headers->set('Content-Type', 'application/json');
$app->response()->headers->set('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
$app->response()->headers->set('Access-Control-Allow-Origin', '*');</code>

解決方案:停用客戶端預檢請求

或者,您可以透過重設AngularJS 中的通用標頭來停用客戶端預檢請求:

<code class="js">app.config(function ($httpProvider) {
  $httpProvider.defaults.headers.common = {};
  $httpProvider.defaults.headers.post = {};
  $httpProvider.defaults.headers.put = {};
  $httpProvider.defaults.headers.patch = {};
});</code>

其他注意事項

對於涉及敏感資料的POST 要求,您可能需要實作身分驗證和授權機制,例如JSON Web Tokens (JWT)、以確保連線安全。徹底了解 CORS 並確保正確處理 OPTIONS 請求以防止安全漏洞至關重要。

以上是為什麼我的 AngularJS POST 請求失敗並出現預檢請求 404?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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