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 相关文章推荐
我的论坛源代码(五)
Oct 09 PHP
繁体中文转换为简体中文的PHP函数
Oct 09 PHP
《PHP边学边教》(01.开篇――准备工作)
Dec 13 PHP
解析PHP中一些可能会被忽略的问题
Jun 21 PHP
php使浏览器直接下载pdf文件的方法
Nov 15 PHP
php把数据表导出为Excel表的最简单、最快的方法(不用插件)
May 10 PHP
php几个预定义变量$_SERVER用法小结
Nov 07 PHP
PHP图片处理之使用imagecopyresampled函数裁剪图片例子
Nov 19 PHP
微信公众平台DEMO(PHP)
May 04 PHP
PHP中使用OpenSSL生成证书及加密解密
Feb 05 PHP
Yii2框架控制器、路由、Url生成操作示例
May 27 PHP
PhpStorm 2020.3:新增开箱即用的PHP 8属性(推荐)
Oct 30 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
利用phpExcel实现Excel数据的导入导出(全步骤详细解析)
2013/11/26 PHP
PHP制作3D扇形统计图以及对图片进行缩放操作实例
2014/10/23 PHP
php构造函数的继承方法
2015/02/09 PHP
PHP的命令行命令使用指南
2015/08/18 PHP
使用PHP处理数据库数据如何将数据返回客户端并显示当前状态
2016/02/16 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
Javascript 强制类型转换函数
2009/05/17 Javascript
jQuery 可以拖动的div实现代码 脚本之家修正版
2009/06/26 Javascript
Prototype 学习 工具函数学习($方法)
2009/07/12 Javascript
Jquery和JS用外部变量获取Ajax返回的参数值的方法实例(超简单)
2013/06/17 Javascript
js 实现菜单左右滚动显示示例介绍
2013/11/21 Javascript
jQuery窗口、文档、网页各种高度的精确理解
2014/07/02 Javascript
JavaScript 表单处理实现代码
2015/04/13 Javascript
深入理解jQuery layui分页控件的使用
2016/08/17 Javascript
Jquery把获取到的input值转换成json
2017/05/15 jQuery
vue编译打包本地查看index文件的方法
2018/02/23 Javascript
详解如何制作并发布一个vue的组件的npm包
2018/11/10 Javascript
监控Nodejs的性能实例代码
2019/07/02 NodeJs
Vue中的循环及修改差值表达式的方法
2019/08/29 Javascript
用python写asp详细讲解
2013/12/16 Python
Python实现的批量下载RFC文档
2015/03/10 Python
Python Flask上下文管理机制实例解析
2020/03/16 Python
DataFrame 数据合并实现(merge,join,concat)
2020/06/14 Python
利用CSS3实现毛玻璃效果示例源码
2016/09/25 HTML / CSS
CSS3实现翘边的阴影效果的代码示例
2016/06/13 HTML / CSS
浅谈cookie和localStorage那些事
2019/08/27 HTML / CSS
泰国折扣酒店预订:Hotels2Thailand
2018/03/20 全球购物
办公室文秘岗位职责
2013/11/15 职场文书
一名女生的自荐信
2013/12/08 职场文书
课堂教学改革实施方案
2014/03/17 职场文书
幼儿园中班开学寄语
2014/04/03 职场文书
面试自我介绍演讲稿
2014/04/29 职场文书
诚信贷款承诺书
2014/05/30 职场文书
医院领导班子查摆问题对照检查材料思想汇报
2014/10/08 职场文书
(开源)微信小程序+mqtt,esp8266温湿度读取
2021/04/02 Javascript
numpy array找出符合条件的数并赋值的示例代码
2022/06/01 Python