Ajax implements the method of calling the return php interface to return json data

墨辰丷
Release: 2023-03-27 15:24:02
Original
3226 people have browsed it

This article mainly introduces the method of ajax implementing the call to return the php interface to return json data. Interested friends can refer to it. I hope it will be helpful to everyone.

php code is as follows:

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

?>
Copy after login

js code is as follows :

<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>
Copy after login

Two problems were encountered:

1. The first question:


Uncaught SyntaxError: Unexpected token :

The solution is as follows:

This has just happened to me, and the reason was none of the reasons above. I was using the jQuery command getJSON and adding callback=? to use JSONP (as I needed to go cross-domain), and returning the JSON code {"foo":"bar"} and getting the error.

This is because I should have included the callback data, something like jQuery17209314005577471107_1335958194322({"foo":"bar"})

Here is the PHP code I used to achieve this, which degrades if JSON (without a callback) is used:

$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; 
}
Copy after login

Hopefully that will help someone in the future.

2. The second question:

Parse json data. As you can see from the above javascript, I did not use the jquery.parseJSON() methods. I started using these methods, but I always reported

VM219:1 Uncaught SyntaxError: Unexpected token o in JSON at position 1. error, but later I didn’t use the jquery.parseJSON() method, but everything went fine. Do not know why.

Related recommendations:

Detailed explanation of the ini configuration principle in php_php basics

php formatted json function sample code _php skills

What do {} braces mean in php_php basics

##

The above is the detailed content of Ajax implements the method of calling the return php interface to return json data. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template