PHP Mengembalikan JSON ke jQuery AJAX Call
Walaupun anda berusaha untuk berkomunikasi dengan PHP melalui fungsi AJAX jQuery, anda sentiasa menghadapi " ralat pemilih diaktifkan". Selain itu, data yang diambil kelihatan tidak betul. Mari kita selidiki isu ini dan kenal pasti punca yang berpotensi.
PHP dengan JSON Return
Coretan yang disediakan di bawah menggambarkan cara mengembalikan data JSON dalam PHP:
<code class="php">header('Content-Type: application/json'); echo json_encode([ 'return' => 1, 'msg1' => 'Message sent OK, we will be in touch ASAP' ]); exit;</code>
Perhatikan kemasukan header('Content-Type: application/json'); sebelum gema untuk menentukan jenis kandungan JSON.
JavaScript dan AJAX
Kod JavaScript anda di bawah harus mengendalikan panggilan AJAX dengan jayanya:
<code class="javascript">$('#msgid').html('<h1>Submitting Form (External Routine)</h1>'); if ($('#formEnquiry').valid()) { $("#msgid").append("<h1>(Outside Ready) VALIDATED send to PHP</h1>"); $.ajax({ url: "ContactFormProcess3.php", type: "POST", data: $('#formEnquiry').serialize(), dataType: "json", success: function (data) { alert("SUCCESS:"); for (var key in data) { $('#msgid').append(key); $('#msgid').append('=' + data[key] + '<br />'); } }, error: function (data) { alert("ERROR: "); for (var key in data) { $('#msgid').append(key); $('#msgid').append('=' + data[key] + '<br />'); } } }); } else { $('#msgid').append('<h1>(Outside Ready) NOT VALIDATED</h1>'); }</code>
Pastikan panggilan AJAX anda dicetuskan hanya selepas pengesahan borang untuk mengelakkan permintaan pelayan yang tidak perlu.
Data JSON Sepatutnya Disenaraikan
Output yang anda peroleh tidak berformat JSON. Nampaknya objek XHR jQuery sedang dicetak.
Potensi Perangkap
Sahkan yang berikut:
Atas ialah kandungan terperinci Mengapakah Panggilan AJAX jQuery Menerima Data Tidak Betul Walaupun PHP Mengembalikan JSON?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!