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调用Java对象的方法
Oct 09 PHP
PHP clearstatcache()函数详解
Mar 02 PHP
php空间不支持socket但支持curl时recaptcha的用法
Nov 07 PHP
浅析php header 跳转
Jun 17 PHP
php生成缩略图填充白边(等比缩略图方案)
Dec 25 PHP
PHP实现生成透明背景的PNG缩略图函数分享
Jul 08 PHP
php商品对比功能代码分享
Sep 24 PHP
ThinkPHP使用Ueditor的方法详解
May 20 PHP
php 无限分类 树形数据格式化代码
Oct 11 PHP
php 函数中静态变量使用的问题实例分析
Mar 05 PHP
PHP实现简易用户登录系统
Jul 10 PHP
php swoft框架实例用法
Dec 22 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
地摊中国 - 珍藏老照片
2020/08/18 杂记
PR值查询 | PageRank 查询
2006/12/20 PHP
关于PHP中Object对象的笔记分享
2011/06/28 PHP
php集成环境xampp中apache无法启动问题解决方案
2014/11/18 PHP
Json_encode防止汉字转义成unicode的方法
2016/02/25 PHP
php判断str字符串是否是xml格式数据的方法示例
2017/07/26 PHP
php命名空间设计思想、用法与缺点分析
2019/07/17 PHP
JavaScript实现GriwView单列全选(自写代码)
2013/05/13 Javascript
Javascript实现真实字符串剩余字数提示的实例代码
2013/10/22 Javascript
模拟一个类似百度google的模糊搜索下拉列表
2014/04/15 Javascript
js调出上下文菜单的实例
2015/12/17 Javascript
require、backbone等重构手机图片查看器
2016/11/17 Javascript
JavaScript 详解预编译原理
2017/01/22 Javascript
angularjs中使用ng-bind-html和ng-include的实例
2017/04/28 Javascript
通过vue-router懒加载解决首次加载时资源过多导致的速度缓慢问题
2018/04/08 Javascript
[57:36]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第三场 2月1日
2021/03/11 DOTA
分享几道你可能遇到的python面试题
2017/07/24 Python
Python实现字符串与数组相互转换功能示例
2017/09/22 Python
利用TensorFlow训练简单的二分类神经网络模型的方法
2018/03/05 Python
Django分页查询并返回jsons数据(中文乱码解决方法)
2018/08/02 Python
你可能不知道的Python 技巧小结
2020/01/29 Python
python 对任意数据和曲线进行拟合并求出函数表达式的三种解决方案
2020/02/18 Python
Python Mock模块原理及使用方法详解
2020/07/07 Python
英国天然宝石首饰购买网站:Gemondo Jewellery
2018/10/23 全球购物
汽车检测与维修个人求职信
2013/09/24 职场文书
汽车专业大学生职业生涯规划范文
2014/01/07 职场文书
物理专业本科生自荐信
2014/01/30 职场文书
关于奉献的演讲稿
2014/05/21 职场文书
学生干部培训方案
2014/06/12 职场文书
单位委托书范本(3篇)
2014/09/18 职场文书
2015年秘书个人工作总结
2015/04/25 职场文书
仙境之桥观后感
2015/06/16 职场文书
人生感悟经典句子
2019/08/20 职场文书
MySQL系列之八 MySQL服务器变量
2021/07/02 MySQL
苹果发布了MagSafe固件更新,可以不外接电源实现最高7.5W充电
2022/04/21 数码科技
PyCharm 配置SSH和SFTP连接远程服务器
2022/05/11 Python