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中动态显示签名和ip原理
Mar 28 PHP
PHP 图片上传实现代码 带详细注释
Apr 29 PHP
字母顺序颠倒而单词顺序不变的php代码
Aug 08 PHP
php中DOMDocument简单用法示例代码(XML创建、添加、删除、修改)
Dec 19 PHP
php Session存储到Redis的方法
Nov 04 PHP
跟我学Laravel之配置Laravel
Oct 15 PHP
6个超实用的PHP代码片段
Aug 10 PHP
PHP上传Excel文件导入数据到MySQL数据库示例
Oct 25 PHP
Zend Framework实现自定义过滤器的方法
Dec 09 PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
Jun 16 PHP
基于thinkphp6.0的success、error实现方法
Nov 05 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
Feb 27 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
239军机修复记
2021/03/02 无线电
php利用header函数实现文件下载时直接提示保存
2009/11/12 PHP
php excel类 phpExcel使用方法介绍
2010/08/21 PHP
解析php中两种缩放图片的函数,为图片添加水印
2013/06/14 PHP
php实现的微信红包算法分析(非官方)
2015/09/25 PHP
PHP封装的XML简单操作类完整实例
2017/11/13 PHP
Laravel中10个有用的用法小结
2019/05/06 PHP
PHP http请求超时问题解决方案
2020/11/13 PHP
JavaScript中一个奇葩的IE浏览器判断方法
2014/04/16 Javascript
IE浏览器中图片onload事件无效的解决方法
2014/04/29 Javascript
javascript的switch用法注意事项分析
2015/02/02 Javascript
动态加载js的方法汇总
2015/02/13 Javascript
jQuery实现按键盘方向键翻页特效
2015/03/18 Javascript
js+css实现回到顶部按钮(back to top)
2016/03/02 Javascript
jQuery实现的精美平滑二级下拉菜单效果代码
2016/03/28 Javascript
Bootstrap Fileinput文件上传组件用法详解
2016/05/10 Javascript
深入浅析knockout源码分析之订阅
2016/07/12 Javascript
vue鼠标悬停事件实例详解
2019/04/01 Javascript
JS原型和原型链原理与用法实例详解
2020/02/05 Javascript
js实现金山打字通小游戏
2020/07/24 Javascript
[06:40]2014DOTA2西雅图国际邀请赛 DK战队巡礼
2014/07/07 DOTA
[41:21]夜魇凡尔赛茶话会 第三期02:看图识人
2021/03/11 DOTA
Python使用正则表达式抓取网页图片的方法示例
2017/04/21 Python
python批量读取txt文件为DataFrame的方法
2018/04/03 Python
python操作日志的封装方法(两种方法)
2019/05/23 Python
如何实现Django Rest framework版本控制
2019/07/25 Python
python基本算法之实现归并排序(Merge sort)
2020/09/01 Python
大码女装:Ulla Popken
2019/08/06 全球购物
J2EE的优越性主要表现在哪些方面
2016/03/28 面试题
就业协议书怎么填
2014/04/11 职场文书
船舶工程技术专业求职信
2014/08/07 职场文书
关于美容院的活动方案
2014/08/14 职场文书
党的群众路线教育实践活动通讯稿
2014/09/10 职场文书
工作作风懒散检讨书
2014/10/29 职场文书
2015暑期爱心支教策划书
2015/07/14 职场文书
中国古代史学名著《战国策》概述
2019/08/09 职场文书