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

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

墨辰丷
墨辰丷original
2018-05-23 09:33:503277parcourir

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).")";
  }

?>

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>

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; 
}

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!

Déclaration:
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