php code is as follows:
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).")"; } ?>
1. The first problem:
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 addingcallback=?
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 likejQuery17209314005577471107_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 the error
VM219:1 Uncaught SyntaxError: Unexpected token o in JSON at position 1
was always reported. , later I didn’t use the jquery.parseJSON() method, but everything was normal. Do not know why.
The above introduces how the ajax call returns the php interface and returns json data, including the content of ajax and json. I hope it will be helpful to friends who are interested in PHP tutorials.