Ajax implémente la méthode d'appel de l'interface return php pour renvoyer les données json

墨辰丷
Libérer: 2023-03-27 15:24:02
original
3210 Les gens l'ont consulté

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(&#39;Content-Type: application/json&#39;);
  header(&#39;Content-Type: text/html;charset=utf-8&#39;);

  $email = $_GET[&#39;email&#39;];

  $user = [];

  $conn = @mysql_connect("localhost","Test","123456") or die("Failed in connecting database");
  mysql_select_db("Test",$conn);
  mysql_query("set names &#39;UTF-8&#39;");
  $query = "select * from UserInformation where email = &#39;".$email."&#39;";
  $result = mysql_query($query);
  if (null == ($row = mysql_fetch_array($result))) {
    echo $_GET[&#39;callback&#39;]."(no such user)";
  } else {
    $user[&#39;email&#39;] = $email;
    $user[&#39;nickname&#39;] = $row[&#39;nickname&#39;];
    $user[&#39;portrait&#39;] = $row[&#39;portrait&#39;];
    echo $_GET[&#39;callback&#39;]."(".json_encode($user).")";
  }

?>
Copier après la connexion

js Le code est le suivant :

<script>
    $.ajax({
      url: "http://test.localhost/UserInterfaceForChatroom/UserInformation.php?email=pshuyue@gmail.com",
      type: "GET",
      dataType: &#39;jsonp&#39;,
      //      crossDomain: true,
      success: function (result) {
        //        data = $.parseJSON(result);
        //        alert(data.nickname);
        alert(result.nickname);
      }
    });
  </script>
Copier après la connexion

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[&#39;foo&#39;] = "bar";
finish();

function finish() {
  header("content-type:application/json");
  if ($_GET[&#39;callback&#39;]) {
    print $_GET[&#39;callback&#39;]."(";
  }
  print json_encode($GLOBALS[&#39;ret&#39;]);
  if ($_GET[&#39;callback&#39;]) {
    print ")";
  }
  exit; 
}
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!