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中使用Oracle数据库(2)
Oct 09 PHP
剖析 PHP 中的输出缓冲
Dec 21 PHP
php adodb分页实现代码
Mar 19 PHP
PHP file_get_contents 函数超时的几种解决方法
Jul 30 PHP
PHP提取字符串中的图片地址[正则表达式]
Nov 12 PHP
PHP不用第三变量交换2个变量的值的解决方法
Jun 02 PHP
浅析关于PHP位运算的简单权限设计
Jun 30 PHP
浅析51个PHP处理字符串的函数
Aug 02 PHP
PHP检测链接是否存在的代码实例分享
May 06 PHP
基于swoole实现多人聊天室
Jun 14 PHP
laravel 使用事件系统统计浏览量的实现
Oct 16 PHP
php接口隔离原则实例分析
Nov 11 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程序
2006/10/09 PHP
ThinkPHP 连接Oracle数据库的详细教程[全]
2012/07/16 PHP
Linux下手动编译安装PHP扩展的例子分享
2014/07/15 PHP
PHP使用PHPexcel导入导出数据的方法
2015/11/14 PHP
php格式化json函数示例代码
2016/05/12 PHP
mapper--图片热点区域高亮组件官方站点
2007/12/22 Javascript
禁用键盘上的(全局)指定键兼容iE、Chrome、火狐
2013/05/14 Javascript
jQuery删除一个元素后淡出效果展示删除过程的方法
2015/03/18 Javascript
JavaScript中的原始值和复杂值
2016/01/07 Javascript
iScroll.js 使用方法参考
2016/05/16 Javascript
JavaScript中的await/async的作用和用法
2016/10/31 Javascript
Html中 IFrame的用法及注意点
2016/12/22 Javascript
详谈构造函数加括号与不加括号的区别
2017/10/26 Javascript
vue单个组件实现无限层级多选菜单功能
2018/04/10 Javascript
Phaser.js实现简单的跑酷游戏附源码下载
2018/10/26 Javascript
操作按钮悬浮固定在微信小程序底部的实现代码
2019/08/02 Javascript
JQuery插件tablesorter表格排序实现过程解析
2020/05/28 jQuery
javascript实现前端成语点击验证优化
2020/06/24 Javascript
Python中特殊函数集锦
2015/07/27 Python
python: 自动安装缺失库文件的方法
2018/10/22 Python
Python split() 函数拆分字符串将字符串转化为列的方法
2019/07/16 Python
python web框架中实现原生分页
2019/09/08 Python
pymysql 插入数据 转义处理方式
2020/03/02 Python
如何基于Python代码实现高精度免费OCR工具
2020/06/18 Python
HTML4和HTML5之间除了相似以外的10个主要不同
2012/12/13 HTML / CSS
异常和异常类的概念
2014/09/12 面试题
毕业生找工作推荐信
2013/11/21 职场文书
《威尼斯的小艇》教学反思
2014/02/17 职场文书
诉讼代理人授权委托书
2014/04/08 职场文书
运动会表扬稿范文
2015/05/05 职场文书
战马观后感
2015/06/08 职场文书
z-index不起作用
2021/03/31 HTML / CSS
python用字节处理文件实例讲解
2021/04/13 Python
python scipy 稀疏矩阵的使用说明
2021/05/26 Python
Python通用验证码识别OCR库ddddocr的安装使用教程
2022/07/07 Python