这里有新鲜出炉的 PHP 教程,程序狗速度看过来!
PHP(外文名: Hypertext Preprocessor,中文名:"超文本预处理器")是一种通用开源脚本语言。语法吸收了 C 语言、Java 和 Perl 的特点,入门门槛较低,易于学习,使用广泛,主要适用于 web 开发领域。PHP 的文件后缀名为 php。
下面小编就为大家带来一篇 ajax 调用返回 php 接口返回 json 数据的方法 (必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
php 代码如下:
- <?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 代码如下:
- <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>
其中遇到了两个问题:
1、第一个问题:
Uncaught SyntaxError: Unexpected token :
解决方案如下:
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、第二个问题:
解析 json 数据。从上面的 javascript 中可以看到,我没有使用 jquery.parseJSON() 这些方法,开始使用这些方法,但是总是会报
VM219:1 Uncaught SyntaxError: Unexpected token o in JSON at position 1 的错误,后来不用 jquery.parseJSON() 这个方法,反而一切正常。不知为何。
以上这篇 ajax 调用返回 php 接口返回 json 数据的方法 (必看篇) 就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持 PHPERZ。
来源: http://www.phperz.com/article/17/0807/339959.html