Home > Article > Backend Development > Ajax implements the method of calling the return php interface to return json data
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('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 code is as follows :
<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>
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['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; }
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!