ajax调用返回php接口返回json数据的方法(必看篇)


Posted in PHP onMay 05, 2017

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数据的方法(必看篇)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
在字符串中把网址改成超级链接
Oct 09 PHP
Adodb的十个实例(清晰版)
Dec 31 PHP
php 获取可变函数参数的函数
Aug 26 PHP
解析smarty 截取字符串函数 truncate的用法介绍
Jun 20 PHP
关于url地址传参数时字符串有回车造成页面脚本赋值失败的解决方法
Jun 28 PHP
php5.3 不支持 session_register() 此函数已启用的解决方法
Nov 12 PHP
PHP+Mysql实现多关键字与多字段生成SQL语句的函数
Nov 05 PHP
PIGCMS 如何关闭聊天机器人
Feb 12 PHP
php多线程实现方法及用法实例详解
Oct 26 PHP
微信支付开发动态链接Native支付
Jul 12 PHP
PHP设计模式之装饰器模式实例详解
Feb 07 PHP
PHP生成腾讯云COS接口需要的请求签名
May 20 PHP
ThinkPHP 3.2.2实现事务操作的方法
May 05 #PHP
PHP实现Session入库/存入redis的方法
May 04 #PHP
ThinkPHP中Widget扩展的两种写法及调用方法详解
May 04 #PHP
PHP+jQuery实现滚屏无刷新动态加载数据功能详解
May 04 #PHP
PHP调用Mailgun发送邮件的方法
May 04 #PHP
PHP实现图片的等比缩放和Logo水印功能示例
May 04 #PHP
Yii2数据库操作常用方法小结
May 04 #PHP
You might like
在同一窗体中使用PHP来处理多个提交任务
2006/10/09 PHP
PHP array 的加法操作代码
2010/07/24 PHP
CodeIgniter基于Email类发邮件的方法
2016/03/29 PHP
JQuery 获得绝对,相对位置的坐标方法
2010/02/09 Javascript
Jquery 获得服务器控件值的方法小结
2010/05/11 Javascript
关于include标签导致js路径找不到的问题分析及解决
2013/07/09 Javascript
鼠标滚轮改变图片大小的示例代码
2013/11/20 Javascript
解决Jquery鼠标经过不停滑动的问题
2014/03/03 Javascript
checkbox选中与未选中判断示例
2014/08/04 Javascript
JavaScript实现梯形乘法表的方法
2015/04/25 Javascript
jQuery实现div拖拽效果实例分析
2016/02/20 Javascript
JS组件Bootstrap导航条使用方法详解
2016/04/29 Javascript
H5移动端图片压缩上传开发流程
2016/11/09 Javascript
JSONP跨域请求
2017/03/02 Javascript
vue实现引入本地json的方法分析
2018/07/12 Javascript
vue2.0 下拉框默认标题设置方法
2018/08/22 Javascript
纯javascript实现选择框的全选与反选功能
2019/04/08 Javascript
Vue实现商品详情页的评价列表功能
2019/09/04 Javascript
微信小程序点击滚动到指定位置的实现
2020/05/22 Javascript
[01:15:18]2014 DOTA2国际邀请赛中国区预选赛 LGD VS Speed Gaming.cn
2014/05/22 DOTA
Python代码实现删除一个list里面重复元素的方法
2019/04/02 Python
python爬虫开发之使用Python爬虫库requests多线程抓取猫眼电影TOP100实例
2020/03/10 Python
python中执行smtplib失败的处理方法
2020/07/01 Python
基于Python爬取51cto博客页面信息过程解析
2020/08/25 Python
HTML5画渐变背景图片并自动下载实现步骤
2013/11/18 HTML / CSS
泰国王权免税店官方网站:KingPower
2019/03/11 全球购物
全球性的在线婚纱礼服工厂:27dress.com
2019/03/21 全球购物
德国受欢迎的旅游和休闲网站:lastminute.de
2019/09/23 全球购物
如何查询Oracle数据库中已经创建的索引
2013/10/11 面试题
行政文员岗位职责
2013/11/08 职场文书
幸福家庭事迹材料
2014/02/03 职场文书
霸气队列口号
2014/06/18 职场文书
贸易经济专业自荐书
2014/06/29 职场文书
十佳党员事迹材料
2014/08/28 职场文书
加强作风建设演讲稿
2014/10/24 职场文书
SSM项目使用拦截器实现登录验证功能
2022/01/22 Java/Android