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 随机生成10位字符代码
Mar 26 PHP
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装最快的解决办法
Aug 01 PHP
phpadmin如何导入导出大数据文件及php.ini参数修改
Feb 18 PHP
php批量更改数据库表前缀实现方法
Oct 26 PHP
回帖脱衣服的图片实现代码
Feb 15 PHP
ThinkPHP打开验证码页面显示乱码的解决方法
Dec 18 PHP
php+mysql数据库查询实例
Jan 21 PHP
PHP实现删除字符串中任何字符的函数
Aug 11 PHP
php 生成签名及验证签名详解
Oct 26 PHP
PHP实现求两个字符串最长公共子串的方法示例
Nov 17 PHP
thinkPHP通用控制器实现方法示例
Nov 23 PHP
php 多继承的几种常见实现方法示例
Nov 18 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 return语句另类用法不止是在函数中
2014/09/17 PHP
PHP MPDF中文乱码的解决方式
2015/12/08 PHP
syntaxhighlighter 使用方法
2007/07/02 Javascript
Javascript Object.extend
2010/05/18 Javascript
让checkbox不选中即将选中的checkbox不选中
2014/07/11 Javascript
两种方法基于jQuery实现IE浏览器兼容placeholder效果
2014/10/14 Javascript
jQuery实现DIV层淡入淡出拖动特效的方法
2015/02/13 Javascript
基于jQuery实现搜索关键字自动匹配功能
2020/03/26 Javascript
jQuery插件EasyUI设置datagrid的checkbox为禁用状态的方法
2016/08/05 Javascript
EasyUI的DataGrid绑定Json数据源的示例代码
2017/12/16 Javascript
webpack打包react项目的实现方法
2018/06/21 Javascript
超出JavaScript安全整数限制的数字计算BigInt详解
2018/06/24 Javascript
Vue使用NProgress进度条的方法
2019/09/21 Javascript
JS如何实现手机端输入验证码效果
2020/05/13 Javascript
[01:09:19]DOTA2-DPC中国联赛 正赛 VG vs Aster BO3 第二场 2月28日
2021/03/11 DOTA
Python FTP操作类代码分享
2014/05/13 Python
Python中的defaultdict与__missing__()使用介绍
2018/02/03 Python
Python 将pdf转成图片的方法
2018/04/23 Python
python+POP3实现批量下载邮件附件
2018/06/19 Python
Win10下python3.5和python2.7环境变量配置教程
2018/09/18 Python
Python实现的IP端口扫描工具类示例
2019/02/15 Python
详解Python 解压缩文件
2019/04/09 Python
详解解决Python memory error的问题(四种解决方案)
2019/08/08 Python
css3新单位vw、vh的使用教程
2018/03/23 HTML / CSS
欧洲著名的珠宝和手表网上商城:uhrcenter
2017/04/10 全球购物
加利福尼亚州威尼斯的女性奢侈品设计师服装和概念店:Mona Moore
2018/09/13 全球购物
计算 s=(x*y)1/2,用两个宏定义来实现
2016/08/11 面试题
党员2014两会学习心得体会
2014/03/17 职场文书
《三顾茅庐》教学反思
2014/04/10 职场文书
食品采购员岗位职责
2014/04/14 职场文书
销售助理岗位职责
2015/02/11 职场文书
入党自荐书范文
2015/03/05 职场文书
如何书写邀请函?
2019/06/24 职场文书
golang为什么要统一错误处理
2022/04/03 Golang
Docker下安装Oracle19c
2022/04/13 Servers
Vue Mint UI mt-swipe的使用方式
2022/06/05 Vue.js