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写的小东西
Dec 06 PHP
php 代码优化之经典示例
Mar 24 PHP
Apache2中实现多网站域名绑定的实现方法
Jun 01 PHP
PHP漏洞全解(详细介绍)
Nov 13 PHP
php数组查找函数in_array()、array_search()、array_key_exists()使用实例
Apr 29 PHP
php中$美元符号与Zen Coding冲突问题解决方法分享
May 28 PHP
Codeigniter中mkdir创建目录遇到权限问题和解决方法
Jul 25 PHP
php与Mysql的一些简单的操作
Feb 26 PHP
php session的锁和并发
Jan 22 PHP
分享PHP-pcntl 实现多进程代码
Sep 30 PHP
ecshop添加菜单及权限分配问题
Nov 21 PHP
PHP 代码简洁之道(小结)
Oct 16 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
如何分别全角和半角以避免乱码
2006/10/09 PHP
php数组对百万数据进行排除重复数据的实现代码
2010/06/08 PHP
浅析PHP程序防止ddos,dns,集群服务器攻击的解决办法
2013/06/18 PHP
关于php 接口问题(php接口主要也就是运用curl,curl函数)
2013/07/01 PHP
PHP5各个版本的新功能和新特性总结
2014/03/16 PHP
中高级PHP程序员应该掌握哪些技术?
2016/09/23 PHP
PHP中for循环与foreach的区别
2017/03/06 PHP
用JQuery 实现的自定义对话框
2007/03/24 Javascript
IE6,IE7,IE8下使用Javascript记录光标选中范围(已补全)
2011/08/28 Javascript
jquery 合并内容相同的单元格(示例代码)
2013/12/13 Javascript
javascript+HTML5的Canvas实现Lab单车动画效果
2015/08/07 Javascript
Nginx上传文件全部缓存解决方案
2015/08/17 Javascript
javascript实现html页面之间参数传递的四种方法实例分析
2015/12/15 Javascript
jQuery ajax分页插件实例代码
2016/01/27 Javascript
Javascript之Date对象详解
2016/06/07 Javascript
bootstrap提示标签、提示框实现代码
2016/12/28 Javascript
JavaScript实现精美个性导航栏筋斗云效果
2017/10/29 Javascript
浅谈使用React.setState需要注意的三点
2017/12/18 Javascript
基于JavaScript实现瀑布流布局
2018/08/15 Javascript
jQuery访问json文件中数据的方法示例
2019/01/28 jQuery
JS实现可控制的进度条
2020/03/25 Javascript
[56:00]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第二场
2018/04/10 DOTA
[01:42:49]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第一场 2月26日
2021/03/11 DOTA
python中查看变量内存地址的方法
2015/05/05 Python
Python实现比较两个列表(list)范围
2015/06/12 Python
python3-flask-3将信息写入日志的实操方法
2019/11/12 Python
python实现输入的数据在地图上生成热力图效果
2019/12/06 Python
Superdry瑞典官网:英国日本街头风品牌
2017/05/17 全球购物
求∏的近似值,直到最后一项的绝对值小于指定的数
2016/02/12 面试题
政治学求职信
2014/06/03 职场文书
幼师辞职信范文
2015/02/27 职场文书
2015年大学班级工作总结
2015/04/28 职场文书
小学生节水倡议书
2015/04/29 职场文书
学生会部长竞选稿
2015/11/19 职场文书
教你怎么用Python监控愉客行车程
2021/04/29 Python