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 服务器配置(使用Apache及IIS两种方法)
Jun 01 PHP
PHP的array_diff()函数在处理大数组时的效率问题
Nov 27 PHP
PHP __autoload函数(自动载入类文件)的使用方法
Feb 04 PHP
ThinkPHP整合百度Ueditor图文教程
Oct 21 PHP
php中Array2xml类实现数组转化成XML实例
Dec 08 PHP
php实现汉字验证码和算式验证码的方法
Mar 07 PHP
PHP执行SQL文件并将SQL文件导入到数据库
Sep 17 PHP
PHP简单判断iPhone、iPad、Android及PC设备的方法
Oct 11 PHP
PHP基于自增数据如何生成不重复的随机数示例
May 19 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
Dec 26 PHP
PHP+iframe模拟Ajax上传文件功能示例
Jul 02 PHP
PHP Primary script unknown 解决方法总结
Aug 22 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
web方式ftp
2006/10/09 PHP
php中global和$GLOBALS[]的分析之一
2012/02/02 PHP
php将HTML表格每行每列转为数组实现采集表格数据的方法
2015/04/03 PHP
简单解决新浪SAE无法上传文件的问题
2015/05/13 PHP
基于PHP给大家讲解防刷票的一些技巧
2015/11/18 PHP
Yii2 加载css、js 载静态资源的方法
2017/03/10 PHP
PHP编程快速实现数组去重的方法详解
2017/07/22 PHP
修改jquery里的dialog对话框插件为框架页(iframe) 的方法
2010/09/14 Javascript
javascript实现的一个带下拉框功能的文本框
2014/05/08 Javascript
解决Jquery向页面append新元素之后事件的绑定问题
2015/03/16 Javascript
动态加载css方法实现和深入解析
2017/01/18 Javascript
用angular实现多选按钮的全选与反选实例代码
2017/05/23 Javascript
详解基于webpack2.x的vue2.x的多页面站点
2017/08/21 Javascript
详解在React里使用&quot;Vuex&quot;
2018/04/02 Javascript
angularJs中orderBy筛选以及filter过滤数据的方法
2018/09/30 Javascript
js设计模式之代理模式及订阅发布模式实例详解
2019/08/15 Javascript
基于form-data请求格式详解
2019/10/29 Javascript
Vue防止白屏添加首屏动画的实例
2019/10/31 Javascript
详细介绍Python中的偏函数
2015/04/27 Python
Django与遗留的数据库整合的方法指南
2015/07/24 Python
Python快速从注释生成文档的方法
2016/12/26 Python
老生常谈python之鸭子类和多态
2017/06/13 Python
python中pytest收集用例规则与运行指定用例详解
2019/06/27 Python
PyCharm2019安装教程及其使用(图文教程)
2019/09/29 Python
Python变量、数据类型、数据类型转换相关函数用法实例详解
2020/01/09 Python
python实现Pyecharts实现动态地图(Map、Geo)
2020/03/25 Python
用python对oracle进行简单性能测试
2020/12/05 Python
澳大利亚宠物商店:Petbarn
2017/11/18 全球购物
Subside Sports德国:足球球衣和球迷商品
2019/06/08 全球购物
临床医学系毕业生推荐信
2013/11/09 职场文书
元旦晚会邀请函
2014/02/01 职场文书
银行批评与自我批评
2014/02/10 职场文书
政治表现评语
2014/05/04 职场文书
国际残疾人日广播稿范文
2014/10/09 职场文书
初中学生操行评语
2014/12/26 职场文书
外贸业务员岗位职责
2015/02/13 职场文书