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 相关文章推荐
php 接口类与抽象类的实际作用
Nov 26 PHP
input file获得文件根目录简单实现
Apr 26 PHP
ThinkPHP的RBAC(基于角色权限控制)深入解析
Jun 17 PHP
php中如何判断一个网页请求是ajax请求还是普通请求
Aug 10 PHP
php while循环得到循环次数
Oct 26 PHP
phpmyadmin中禁止外网使用的方法
Nov 04 PHP
PHP 读取和编写 XML
Nov 19 PHP
PHP图片处理之图片旋转和图片翻转实例
Nov 19 PHP
php连接与操作PostgreSQL数据库的方法
Dec 25 PHP
php-beanstalkd消息队列类实例分享
Jul 19 PHP
PHP创建自己的Composer包方法
Apr 09 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
Feb 23 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面向对象概念
2011/11/06 PHP
使用PHP curl模拟浏览器抓取网站信息
2013/10/28 PHP
JQuery 绑定事件时传递参数的实现方法
2009/10/13 Javascript
基本jquery的控制tabs打开的数量的代码
2010/10/17 Javascript
jquery 提示信息显示后自动消失的具体实现
2013/12/18 Javascript
简单的ajax连接库分享(不用jquery的ajax)
2014/01/19 Javascript
EasyUI为Numberbox添加blur事件的方法
2017/03/05 Javascript
JS中的JSON对象的定义和取值实现代码
2018/05/09 Javascript
webpack分离css单独打包的方法
2018/06/12 Javascript
JavaScript创建对象方法实例小结
2018/09/03 Javascript
详解基于vue-cli3.0如何构建功能完善的前端架子
2018/10/09 Javascript
JS字符串常用操作方法实例小结
2019/06/24 Javascript
通过实例了解Render Props回调地狱解决方案
2020/11/04 Javascript
[01:01:25]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第三局
2016/02/27 DOTA
[54:18]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS BO3 第一场 1月22日
2021/03/11 DOTA
pygame实现弹力球及其变速效果
2017/07/03 Python
浅谈Python中重载isinstance继承关系的问题
2018/05/04 Python
根据DataFrame某一列的值来选择具体的某一行方法
2018/07/03 Python
python协程gevent案例 爬取斗鱼图片过程解析
2019/08/27 Python
Django项目创建到启动详解(最全最详细)
2019/09/07 Python
python GUI库图形界面开发之PyQt5下拉列表框控件QComboBox详细使用方法与实例
2020/02/27 Python
Python OpenCV读取中文路径图像的方法
2020/07/02 Python
详解基于Scrapy的IP代理池搭建
2020/09/29 Python
tensorflow2.0教程之Keras快速入门
2021/02/20 Python
详解HTML5中垂直上下居中的解决方案
2017/12/20 HTML / CSS
html5教程制作简单画板代码分享
2013/12/04 HTML / CSS
NIHAOMARKET官方海外旗舰店:意大利你好华人超市
2018/01/27 全球购物
美国糖果店:Sugarfina
2019/02/21 全球购物
大学生专业个人学习的自我评价
2013/10/26 职场文书
跟单业务员岗位职责
2014/03/08 职场文书
美丽乡村建设实施方案
2014/03/23 职场文书
成立公司计划书
2014/05/07 职场文书
投标文件签署授权委托书范本
2014/10/12 职场文书
夫妻分居协议书范本
2014/11/28 职场文书
结婚十年感言
2015/07/31 职场文书
党员学习中国梦心得体会
2016/01/05 职场文书