Ajax中的JSON格式与php传输过程全面解析


Posted in PHP onNovember 14, 2017

在Ajax中的JSON格式与php传输过程中有哪些要注意的小地方呢?

先来看一下简单通用的JSON与php传输数据的代码

HTML文件:

<input type="button" value="Ajax" id="btn">
 <script>
  var btn = document.getElementById("btn");
  btn.onclick = function(){
    var xhr = getXhr();
    xhr.open("post","测试.php");
    xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
     
    var user = '{"name":"zhangwuji","pwd":"123456"}';
    xhr.send("user="+user);
    xhr.onreadystatechange = function(){
      if(xhr.readyState==4&&xhr.status==200){
        var data = xhr.responseText;
        var json = eval("("+data+")");
        console.log(json);
      }
    }
  }
  function getXhr(){
    var xhr = null;
    if(window.XMLHttpRequest){
      xhr = new XMLHttpRequest();
    }else{
      xhr = new ActiveXObject("Microsoft.XMLHttp");
    }
    return xhr;
  }
 </script>

在整个过程中先要获得AJAX对象,然后用POST请求方式与PHP文件连接,这时候用的是POST方法请求数据,所以这时候还要加上一个请求文件头

xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");这是固定写法直接记下来就可以了。<br><br>上面的是测试代码,创建一个json格式的字符串并用SEND方法传入PHP:

var user = '{"name":"zhangwuji","pwd":"123456"}';

        xhr.send("user="+user);<br><br>这时候要注意了,在构建JSON字符串传输的时候user里面的字符串外面要用单引,里面用双引,不然php那边是不认为你这是JSON 不能正确的进行解析。<br><br><br>这时候看看PHP文件里的代码:

<?php
  // 接收客户端发送的请求数据
  $user = $_POST['user'];
  // 就是一个JSON格式的string字符串

  $json_user = json_decode($user,true);//对json格式的字符串进行解码,转换成PHP变量格式

  // 2. 使用json_encode()函数
  echo json_encode($json_user);//对php变量格式进行编码,转换成JSON格式
?>

json_decode 和json_encode大家从字面的意思都应该可以看出来一点,decode在这这里的作用就是

对json格式的字符串进行解码,转换成PHP变量格式

而encode就是

对php变量格式进行编码,转换成JSON格式在传输回去;

这时候PHP 文件的工作已经结束了,让我们在回到HTML文件看接受数据的onreadystatechange这一块的代码

var data = xhr.responseText;   虽然PHP文件传输回来的是一个JSON格式,但是我们这里接受用的是respenseText所以接收到的只是一个文本格式的字符串<br>这时候我们还要用eval();函数将其转换成JSON格式

* 使用eval()函数进行转换
         使用"()"将其包裹,eval()函数强制将其转换为JSON格式(javascript代码)
         不使用"()"将其包裹,eval()函数将其识别为一个空的代码块

总结

以上所述是小编给大家介绍的Ajax中的JSON格式与php传输过程全面解析,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
用php实现像JSP,ASP里Application那样的全局变量
Jan 12 PHP
php Mysql日期和时间函数集合
Nov 16 PHP
php下MYSQL limit的优化
Jan 10 PHP
简单示例AJAX结合PHP代码实现登录效果代码
Jul 25 PHP
php $_ENV为空的原因分析
Jun 01 PHP
初品cakephp 入门基础
Feb 16 PHP
使用迭代器 遍历文件信息的详解
Jun 08 PHP
php显示指定目录下子目录的方法
Mar 20 PHP
php中分页及SqlHelper类用法实例
Jan 12 PHP
PHP网站自动化配置的实现方法(必看)
May 27 PHP
PHP实现SMTP邮件的发送实例
Sep 27 PHP
统计PHP目录中的文件数方法
Mar 05 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
Nov 14 #PHP
Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解
Nov 14 #PHP
PHP中递归的实现实例详解
Nov 14 #PHP
利用Homestead快速运行一个Laravel项目的方法详解
Nov 14 #PHP
PHP对称加密算法(DES/AES)类的实现代码
Nov 14 #PHP
浅谈PHP中如何实现Hook机制
Nov 14 #PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
Nov 14 #PHP
You might like
允许phpmyadmin空密码登录的配置方法
2011/05/29 PHP
PHP实现中文圆形印章特效
2015/06/19 PHP
php使用FFmpeg接口获取视频的播放时长、码率、缩略图以及创建时间
2016/11/07 PHP
ThinkPHP框架表单验证操作方法
2017/07/19 PHP
PHP基于session.upload_progress 实现文件上传进度显示功能详解
2019/08/09 PHP
Laravel的Auth验证Token验证使用自定义Redis的例子
2019/09/30 PHP
基于jquery的商品展示放大镜
2010/08/07 Javascript
玩转jQuery按钮 请告诉我你最喜欢哪些?
2012/01/08 Javascript
jQuery判断数组是否包含了指定的元素
2015/03/10 Javascript
解决JS组件bootstrap table分页实现过程中遇到的问题
2016/04/21 Javascript
AngularJs 国际化(I18n/L10n)详解
2016/09/01 Javascript
vue的props实现子组件随父组件一起变化
2016/10/27 Javascript
Bootstrap笔记之缩略图、警告框实例详解
2017/03/09 Javascript
xmlplus组件设计系列之分隔框(DividedBox)(8)
2017/05/02 Javascript
Javascript实现的StopWatch功能示例
2017/06/13 Javascript
基于iScroll实现下拉刷新和上滑加载效果
2017/07/18 Javascript
react native仿微信PopupWindow效果的实例代码
2017/08/07 Javascript
手把手教你使用vue-cli脚手架(图文解析)
2017/11/08 Javascript
微信小程序 功能函数小结(手机号验证*、密码验证*、获取验证码*)
2017/12/08 Javascript
vue中keep-alive的用法及问题描述
2018/05/15 Javascript
页面内锚点定位及跳转方法总结(推荐)
2019/04/24 Javascript
Vue axios 将传递的json数据转为form data的例子
2019/10/29 Javascript
JavaScript检测是否开启了控制台(F12调试工具)
2020/10/02 Javascript
python实现简单flappy bird
2018/12/24 Python
Python流程控制 while循环实现解析
2019/09/02 Python
python3 求约数的实例
2019/12/05 Python
python3.8.1+selenium实现登录滑块验证功能
2020/05/22 Python
10分钟入门CSS3 Animation
2018/12/25 HTML / CSS
小学安全教育月活动总结
2014/07/07 职场文书
建筑施工安全责任书
2014/07/24 职场文书
安全伴我行演讲稿
2014/09/04 职场文书
2014年学生会生活部工作总结
2014/11/07 职场文书
信用卡工资证明范本
2015/06/19 职场文书
旅游投诉信范文
2015/07/02 职场文书
高中团支书竞选稿
2015/11/21 职场文书
读《皮囊》有感:理解是对他人的最大的善举
2019/11/14 职场文书