Membetulkan AngularJS POST Gagal dengan Kod Status HTTP 404
Dalam AngularJS, permintaan POST mungkin gagal dengan mesej ralat "Respons for preflight has invalid Kod status HTTP 404." Isu ini timbul apabila penyemak imbas menghantar permintaan OPTIONS prapenerbangan untuk mengesahkan kebenaran sebelum permintaan POST sebenar. Pelayan mesti mengendalikan permintaan pra-penerbangan ini dan bertindak balas dengan pengepala CORS yang sesuai.
Konfigurasi Sisi Pelayan
Dalam pelayan SlimPHP, pastikan anda telah memasukkan pengepala berikut dalam respons anda:
<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>
Konfigurasi Sisi Pelanggan
Seterusnya, lumpuhkan permintaan preflight dengan mengubah suai kod klien AngularJS:
<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 pada bahagian klien, penyemak imbas akan menghantar permintaan POST terus tanpa permintaan OPTIONS prapenerbangan. Ini sepatutnya menyelesaikan ralat HTTP 404.
Gambaran Keseluruhan CORS
Perkongsian Sumber Silang Asal (CORS) membenarkan permintaan daripada domain yang berbeza daripada domain yang menyediakan kandungan. Ia melibatkan permintaan prapenerbangan untuk mengesahkan kebenaran sebelum permintaan sebenar. Pengendalian permintaan prapenerbangan yang tidak betul ini boleh menyebabkan ralat HTTP 404. Dengan memahami CORS dan mengkonfigurasi kedua-dua klien dan pelayan sewajarnya, anda boleh berjaya melaksanakan permintaan POST dalam AngularJS.
Atas ialah kandungan terperinci Mengapa Permintaan AngularJS POST Gagal dengan Kod Status HTTP 404?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!