Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa Permintaan AngularJS POST Saya Gagal dengan 404 untuk Permintaan Preflight?

Mengapa Permintaan AngularJS POST Saya Gagal dengan 404 untuk Permintaan Preflight?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-03 14:56:30295semak imbas

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

AngularJS POST Request Failure: HTTP 404 for Preflight Request

Dalam AngularJS, ralat "XMLHttpRequest tidak dapat dimuatkan" yang tidak dapat diselesaikan boleh berlaku semasa permintaan POST . Ini disebabkan oleh kod status HTTP yang tidak sah (404) untuk permintaan prapenerbangan yang mendahului POST sebenar. Permintaan prapenerbangan bertujuan untuk menyemak sama ada operasi yang diminta dibenarkan, memastikan pematuhan dengan dasar Perkongsian Sumber Rentas Asal (CORS).

Punca Punca: Pengepala CORS Hilang

Punca asas ralat terletak pada kegagalan pelayan untuk mengendalikan permintaan OPTIONS prapenerbangan dengan betul. Untuk mendayakan permintaan silang asal, pelayan mesti menetapkan pengepala CORS yang sesuai.

Penyelesaian: Menambah Pengepala CORS Bahagian Pelayan

Dalam SlimPHP, anda boleh menambah pengepala CORS ke objek tindak balas:

<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>

Penyelesaian: Melumpuhkan Permintaan Preflight Client-Side

Sebagai alternatif, anda boleh melumpuhkan permintaan preflight sisi klien dengan menetapkan semula pengepala biasa dalam 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>

Pertimbangan Tambahan

Untuk permintaan POST yang melibatkan data sensitif, anda mungkin perlu melaksanakan mekanisme pengesahan dan kebenaran, seperti JSON Web Token (JWT), untuk menjamin sambungan. Adalah penting untuk memahami CORS secara menyeluruh dan memastikan pengendalian permintaan OPTIONS yang betul untuk mengelakkan pelanggaran keselamatan.

Atas ialah kandungan terperinci Mengapa Permintaan AngularJS POST Saya Gagal dengan 404 untuk Permintaan Preflight?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn