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!