Rumah >pembangunan bahagian belakang >tutorial php >Mengapakah Data Permintaan Axios POST Tiada daripada Pembolehubah $POST dan $REQUEST PHP?

Mengapakah Data Permintaan Axios POST Tiada daripada Pembolehubah $POST dan $REQUEST PHP?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-22 23:17:29993semak imbas

Why is Axios POST Request Data Missing from PHP's $POST and $REQUEST Variables?

Parameter Penyiaran Axios Tidak Tersedia dalam Pembolehubah PHP

Coretan kod ini menggunakan perpustakaan Axios untuk membuat permintaan POST, menetapkan pengepala Jenis Kandungan ke application/x-www-form-urlencoded:

axios({
    method: 'post',
    url,
    headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
    data: {
        json,
        type,
    }   
})  

Walau bagaimanapun, pembolehubah PHP yang setara, $_POST dan $_REQUEST, kekal kosong selepas permintaan. Sebaliknya, file_get_contents("php://input") nampaknya menerima data.

Punca dan Penyelesaian

Percanggahan timbul daripada cara Axios mensiri data secara lalai . Ia menukar objek JavaScript kepada JSON, yang PHP tidak menyokong secara asli untuk mengisi $_POST. PHP hanya menerima format boleh diproses mesin yang disokong oleh borang HTML: application/x-www-form-urlencoded dan multipart/form-data.

Untuk menangani perkara ini, anda mempunyai beberapa pilihan:

  • Pelayar:

    • Gunakan API URLSearchParams:

      var params = new URLSearchParams();
      params.append('param1', 'value1');
      params.append('param2', 'value2');
      axios.post('/foo', params); 
    • Gunakan perpustakaan qs :

      var qs = require('qs');
      axios.post('/foo', qs.stringify({ 'bar': 123 }));
  • Menyesuaikan PHP:

    • Laraskan PHP untuk mengendalikan JSON mengikut jawapan ini: [pautan untuk menjawab]

Atas ialah kandungan terperinci Mengapakah Data Permintaan Axios POST Tiada daripada Pembolehubah $POST dan $REQUEST PHP?. 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