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 无限分类三种方式 非函数的递归调用!
Aug 26 PHP
基于PHP文件操作的详细诠释
Jun 21 PHP
php不写闭合标签的好处
Mar 04 PHP
使用新浪微博API的OAuth认证发布微博实例
Mar 27 PHP
使用php-timeit估计php函数的执行时间
Sep 06 PHP
Yii框架组件和事件行为管理详解
May 20 PHP
基于PHP实现用户注册登录功能
Oct 14 PHP
YII框架行为behaviors用法示例
Apr 26 PHP
使用swoole 定时器变更超时未支付订单状态的解决方案
Jul 24 PHP
php中错误处理操作实例分析
Aug 23 PHP
Laravel 将数据表的数据导出,并生成seeds种子文件的方法
Oct 09 PHP
ThinkPHP5&amp;5.1实现验证码的生成、使用及点击刷新功能示例
Feb 07 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
一些php项目中比较通用的php自建函数的详解
2013/06/06 PHP
php curl模拟post提交数据示例
2013/12/31 PHP
php快速查找数据库中恶意代码的方法
2015/04/01 PHP
用php+ajax新建流程(请假、进货、出货等)
2017/06/11 PHP
如何利用预加载优化Laravel Model查询详解
2017/08/11 PHP
php 输出缓冲 Output Control用法实例详解
2020/03/03 PHP
JS对URL字符串进行编码/解码分析
2008/10/25 Javascript
在JavaScript中获取请求的URL参数[正则]
2010/12/25 Javascript
基于Jquery的简单图片切换效果
2011/01/06 Javascript
Jquery中val()表单取值赋值的实例代码
2013/08/15 Javascript
javascript动画算法实例分析
2015/07/31 Javascript
jquery中validate与form插件提交的方式小结
2016/03/26 Javascript
浅析script标签中的defer与async属性
2016/11/30 Javascript
Angular.js中上传指令ng-upload的基本使用教程
2017/07/30 Javascript
使用原生js+canvas实现模拟心电图的实例
2017/09/20 Javascript
微信小程序实现弹出菜单功能
2018/06/12 Javascript
js中对象与对象创建方法的各种方法
2019/02/27 Javascript
Vue项目使用localStorage+Vuex保存用户登录信息
2019/05/27 Javascript
JS中超越现实的匿名函数用法实例分析
2019/06/21 Javascript
Python 变量类型及命名规则介绍
2013/06/08 Python
Python爬虫框架Scrapy安装使用步骤
2014/04/01 Python
用Python实现web端用户登录和注册功能的教程
2015/04/30 Python
Python selenium实现断言3种方法解析
2020/09/08 Python
Python实现自动装机功能案例分析
2020/10/22 Python
详解纯CSS3制作的20种loading动效
2017/07/05 HTML / CSS
CSS3 实现图形下落动画效果
2020/11/13 HTML / CSS
Nixon手表英国官网:美国尼克松手表品牌
2020/02/10 全球购物
鞋类设计与工艺专业销售求职信
2013/11/01 职场文书
八一建军节活动方案
2014/02/10 职场文书
对标管理实施方案
2014/03/12 职场文书
合作意向书格式及范文
2014/03/31 职场文书
大专学生求职信
2014/07/04 职场文书
政风行风评议整改方案
2014/09/15 职场文书
民事答辩状范本
2015/05/21 职场文书
职场新人刚入职工作总结该怎么写?
2019/05/15 职场文书
教您怎么制定西餐厅运营方案 ?
2019/07/05 职场文书