Maison >développement back-end >tutoriel php >Ajax implémente la méthode d'appel de l'interface return php pour renvoyer les données json
Cet article présente principalement la méthode d'appel ajax et de renvoi de l'interface php pour renvoyer les données json. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.
le code php est le suivant :
<?php header('Content-Type: application/json'); header('Content-Type: text/html;charset=utf-8'); $email = $_GET['email']; $user = []; $conn = @mysql_connect("localhost","Test","123456") or die("Failed in connecting database"); mysql_select_db("Test",$conn); mysql_query("set names 'UTF-8'"); $query = "select * from UserInformation where email = '".$email."'"; $result = mysql_query($query); if (null == ($row = mysql_fetch_array($result))) { echo $_GET['callback']."(no such user)"; } else { $user['email'] = $email; $user['nickname'] = $row['nickname']; $user['portrait'] = $row['portrait']; echo $_GET['callback']."(".json_encode($user).")"; } ?>
js Le code est le suivant :
<script> $.ajax({ url: "http://test.localhost/UserInterfaceForChatroom/UserInformation.php?email=pshuyue@gmail.com", type: "GET", dataType: 'jsonp', // crossDomain: true, success: function (result) { // data = $.parseJSON(result); // alert(data.nickname); alert(result.nickname); } }); </script>
Deux problèmes ont été rencontrés :
1. La première question :
Erreur de syntaxe non détectée : jeton inattendu :
La solution est la suivante :
Cela vient de m'arriver, et la raison n'était aucune des raisons ci-dessus. getJSON et en ajoutant callback =? pour utiliser JSONP (car j'avais besoin d'aller sur plusieurs domaines), et en renvoyant le code JSON {"foo": "bar"} et en obtenant l'erreur.
C'est parce que je devrais J'ai inclus les données de rappel, quelque chose comme jQuery17209314005577471107_1335958194322({"foo": "bar"})
Voici le code PHP que j'ai utilisé pour y parvenir, qui se dégrade si JSON (sans rappel) est utilisé :
$ret['foo'] = "bar"; finish(); function finish() { header("content-type:application/json"); if ($_GET['callback']) { print $_GET['callback']."("; } print json_encode($GLOBALS['ret']); if ($_GET['callback']) { print ")"; } exit; }
J'espère que cela aidera quelqu'un à l'avenir.
2.
Analyser les données json. Comme vous pouvez le voir dans le javascript ci-dessus, je n'ai pas utilisé les méthodes jquery.parseJSON(). J'ai commencé à utiliser ces méthodes, mais j'ai toujours signalé VM219:1 Uncaught SyntaxError: Unexpected token o in JSON at position. 1 erreur, mais plus tard je n'ai pas utilisé la méthode jquery.parseJSON(), mais tout s'est bien passé. Je ne sais pas pourquoi. Recommandations associées :Explication détaillée du principe de configuration ini dans les bases de php_php
exemple de code de fonction json formaté php _php skills
Que signifient les accolades {} dans les bases de php_php
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!