AngularJS POST Gagal: Menyelesaikan Kod Status HTTP Tidak Sah
Dalam artikel ini, kami menangani isu "Respons for preflight has invalid HTTP kod status 404" yang timbul apabila membuat permintaan POST daripada AngularJS ke pelayan.
Kod AngularJS yang disediakan menyediakan permintaan GET yang berjaya mendapatkan semula data daripada pelayan. Walau bagaimanapun, permintaan POST menghadapi ralat yang dinyatakan di atas disebabkan permintaan OPTIONS prapenerbangan yang dihantar oleh penyemak imbas. Dasar CORS (Cross-Origin Resource Sharing) mewajibkan penyemak imbas menghantar permintaan OPTIONS prapenerbangan sebelum membuat permintaan sebenar.
Dalam SlimPHP, pelayan mengendalikan CORS dengan menetapkan pengepala yang diperlukan. Walau bagaimanapun, memeriksa pengepala permintaan/tindak balas mendedahkan bahawa pelayan mengembalikan kod status 404 untuk permintaan OPTIONS prapenerbangan, yang tidak betul.
Untuk menyelesaikan isu ini, kod AngularJS sisi klien perlu diubah suai untuk mengelakkan permintaan OPTIONS prapenerbangan. Ini boleh dicapai dengan menetapkan semula pengepala lalai menggunakan:
<code class="javascript">app.config(function ($httpProvider) { $httpProvider.defaults.headers.common = {}; $httpProvider.defaults.headers.post = {}; $httpProvider.defaults.headers.put = {}; $httpProvider.defaults.headers.patch = {}; });</code>
Dengan menetapkan semula pengepala ini, penyemak imbas tidak akan menghantar permintaan OPTIONS prapenerbangan lagi. Sebaliknya, ia akan menghantar permintaan POST sebenar secara terus, memintas kod status 404 yang bermasalah untuk permintaan prapenerbangan.
Penyelesaian ini menyerlahkan kepentingan memahami dasar CORS dan mengendalikan permintaan prapenerbangan dengan betul. Dengan menangani kedua-dua aspek sisi klien dan sisi pelayan CORS, pembangun boleh memastikan permintaan silang asal berjaya dan menghapuskan ralat "kod status HTTP tidak sah 404".
Atas ialah kandungan terperinci Mengapa Permintaan AngularJS POST Saya Gagal dengan \'Kod Status HTTP Tidak Sah 404\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!