Heim >Backend-Entwicklung >PHP-Tutorial >Ajax implementiert die Methode zum Aufrufen der Return-PHP-Schnittstelle, um JSON-Daten zurückzugeben

Ajax implementiert die Methode zum Aufrufen der Return-PHP-Schnittstelle, um JSON-Daten zurückzugeben

墨辰丷
墨辰丷Original
2018-05-23 09:33:503280Durchsuche

Dieser Artikel stellt hauptsächlich die Methode zum Aufrufen und Zurückgeben der PHP-Schnittstelle vor, um JSON-Daten zurückzugeben. Ich hoffe, dass er für alle hilfreich ist.

PHP-Code lautet wie folgt:

<?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 Der Code lautet wie folgt:

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

Es sind zwei Probleme aufgetreten:

1. Die erste Frage:


Uncaught SyntaxError: Unexpected token :

Die Lösung lautet wie folgt:

Das ist mir gerade passiert und der Grund war keiner der oben genannten Gründe. Ich habe den jQuery-Befehl getJSON verwendet und callback= hinzugefügt ? um JSONP zu verwenden (da ich domänenübergreifend arbeiten musste) und den JSON-Code {"foo": "bar"} zurückzugeben und den Fehler zu erhalten.

Das liegt daran, dass ich die Rückrufdaten hätte einschließen sollen , so etwas wie jQuery17209314005577471107_1335958194322({"foo":"bar"})

Hier ist der PHP-Code, den ich verwendet habe, um dies zu erreichen, der sich verschlechtert, wenn JSON (ohne Rückruf) verwendet wird:

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

Hoffentlich hilft das jemandem in der Zukunft.

2. Die zweite Frage:

JSON-Daten analysieren. Wie Sie dem obigen Javascript entnehmen können, habe ich die jquery.parseJSON()-Methoden nicht verwendet. Ich habe mit der Verwendung dieser Methoden begonnen, aber ich habe immer

VM219:1 Uncaught SyntaxError: Unexpected token o in JSON at position gemeldet 1 Fehler, aber später habe ich nicht die Methode jquery.parseJSON() verwendet, aber alles lief gut. Ich weiß nicht warum.

Verwandte Empfehlungen:

Detaillierte Erläuterung des INI-Konfigurationsprinzips in den Grundlagen von php_php

Beispielcode für PHP-formatierte JSON-Funktionen _php-Kenntnisse

Was bedeuten {}-geschweifte Klammern in php_php-Grundlagen?

Das obige ist der detaillierte Inhalt vonAjax implementiert die Methode zum Aufrufen der Return-PHP-Schnittstelle, um JSON-Daten zurückzugeben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn