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 相关文章推荐
Mysql和网页显示乱码解决方法集锦
Mar 27 PHP
php miniBB中文乱码问题解决方法
Nov 25 PHP
PHP 网络开发详解之远程文件包含漏洞
Apr 25 PHP
php学习之流程控制实现代码
Jun 09 PHP
php连接mssql数据库的几种方法
Feb 21 PHP
php 生成短网址原理及代码
Jan 23 PHP
php实现XSS安全过滤的方法
Jul 29 PHP
Symfony的安装和配置方法
Mar 17 PHP
PHP文件及文件夹操作之创建、删除、移动、复制
Jul 13 PHP
php mysql数据库操作类(实例讲解)
Aug 06 PHP
PHP实现动态获取函数参数的方法示例
Apr 02 PHP
yii2.0框架场景的简单使用示例
Jan 25 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和ACCESS写聊天室(三)
2006/10/09 PHP
php self,$this,const,static,-&amp;gt;的使用
2009/10/22 PHP
php递归使用示例(php递归函数)
2014/02/14 PHP
PHP中使用TCPDF生成PDF文档实例
2014/07/01 PHP
PHP实现添加购物车功能
2017/03/06 PHP
eval与window.eval的差别分析
2011/03/17 Javascript
js不能跳转到上一页面的问题解决方法
2013/03/01 Javascript
取消选中单选框radio的三种方式示例介绍
2013/12/23 Javascript
javascript中的undefined和not defined区别示例介绍
2014/02/26 Javascript
jQuery选择id属性带有点符号元素的方法
2015/03/17 Javascript
javascript实现仿腾讯游戏选择
2015/05/14 Javascript
Underscore.js 1.3.3 中文注释翻译说明
2015/06/25 Javascript
浅析JavaScript回调函数应用
2016/05/22 Javascript
深入理解Node.js的HTTP模块
2016/10/12 Javascript
Javascript设计模式之装饰者模式详解篇
2017/01/17 Javascript
详解在express站点中使用ejs模板引擎
2017/09/21 Javascript
JavaScript实现左侧菜单效果
2017/12/14 Javascript
js数组方法reduce经典用法代码分享
2018/01/07 Javascript
[03:47]2015国际邀请赛第三日现场精彩回顾
2015/08/08 DOTA
python pdb调试方法分享
2014/01/21 Python
Python的Flask框架中Flask-Admin库的简单入门指引
2015/04/07 Python
详解Python的Django框架中的模版继承
2015/07/16 Python
Python的Django框架下管理站点的基本方法
2015/07/17 Python
20招让你的Python飞起来!
2016/09/27 Python
Python logging模块用法示例
2018/08/28 Python
Flask之pipenv虚拟环境的实现
2019/11/26 Python
基于Python获取docx/doc文件内容代码解析
2020/02/17 Python
夜大毕业生自我评价分享
2013/11/10 职场文书
学生拾金不昧表扬信
2014/01/21 职场文书
《最佳路径》教学反思
2014/04/13 职场文书
本科应届生求职信
2014/08/05 职场文书
公司领导班子对照材料
2014/08/18 职场文书
2015年毕业生实习评语
2015/03/25 职场文书
外科护士长工作总结
2015/08/12 职场文书
如何使用PostgreSQL进行中文全文检索
2021/05/27 PostgreSQL
spring注解 @PropertySource配置数据源全流程
2022/03/25 Java/Android