ホームページ >バックエンド開発 >PHPチュートリアル >PHP が JSON を返しているにもかかわらず、jQuery の AJAX 呼び出しが間違ったデータを受け取るのはなぜですか?
PHP が jQuery AJAX 呼び出しに JSON を返す
jQuery の AJAX 機能を通じて PHP と通信しようとしているにもかかわらず、継続的に「セレクターが有効になりました」というエラーが表示されます。さらに、取得されたデータは正しくないように見えます。問題を詳しく調べて、潜在的な原因を特定しましょう。JSON を返す PHP
以下のスニペットは、PHP で JSON データを返す方法を示しています。<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>header('Content-Type: application/json'); が含まれていることに注意してください。エコーの前に JSON コンテンツ タイプを指定します。
JavaScript と AJAX
以下の JavaScript コードは AJAX 呼び出しを正常に処理する必要があります:<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>不必要なサーバー要求を避けるために、フォーム検証後にのみ AJAX 呼び出しがトリガーされるようにしてください。
リストされた想定される JSON データ
取得している出力は JSON 形式ではありません。代わりに jQuery の XHR オブジェクトが出力されているようです。潜在的な落とし穴
次の点を確認してください:以上がPHP が JSON を返しているにもかかわらず、jQuery の AJAX 呼び出しが間違ったデータを受け取るのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。