JS和PHP之间以JSON格式传输
Json是一种的轻量级文本数据交换格式。它独立于编程语言,可以用于在不用的编程语言之间进行数据的交互。
下面简单例举二个使用JSON进行数据通信的例子。
第一个例子:
//Javascript以ajax发送数据JSON数据,PHP接收JSON
//前端
var arr ={
"name":"小明",
"age":16
};
var json =JSON.stringify(arr);//使用JSON将对象转换成JSON格式数据
var xhr = new XMLHttpRequest;
xhr.open('post', './bb.php');
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.send("user=" + json);// Content-Type设置成application/x-www-form-urlencoded 的情况下,请求主体可以用key1=value1&key2=value2的形式发送数据
xhr.onreadystatechange = function() {
if(xhr.readyState == 4 && (xhr.status == 200 || xhr.status ==304)) //响应完成并且响应码为200或304
alert(xhr.responseText);
}
------华丽的分割线----------------------------------------------------
//后端
<?php
$info = $_POST["user"]; // 这个时候的info是一个字符串
$result = json_decode($info); // 这个时候的result已经被还原成对象
echo $result -> name;
第二个例子:
//PHP发送数据JSON数据 Javascript以ajax接收JSON
//前端
var xhr = new XMLHttpRequest;
xhr.open('post', './bb.php');
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.send();
xhr.onreadystatechange = function() {
if(xhr.readyState == 4 && (xhr.status == 200 || xhr.status ==304)) { //响应完成并且响应码为200或304
var rst = JSON.parse(xhr.responseText);
alert(rst.name);
}
};
------华丽的分割线----------------------------------------------------
//后端
$info = array("lession" => "English", "name"=>"Lily");
echo json_encode($info);
补充一个关于JSON的兼容。JSON这个内置对象在IE8之前是不存在的,如果在IE8之前需要使用JSON对象,需要像下述一样引入一个第三方插件json2.js。这样IE7及以下版本就会加载json2.js插件,而其他浏览器或者8及以上版本的IE则不会加载这个插件:
<!--[if lte IE 7]>
<script src="./json2.js"></script>
<![endif]-->
JS和PHP之间以JSON格式传输的更多相关文章
- 【最简单的方法】js判断字符串是否为JSON格式(20180115更新)
前言 针对 “js判断字符串是否为JSON格式” 这个问题,在网上查了许多资料,都没找到自己想要的答案. 但是看到这个帖子<js判断字符串是否为JSON格式>后,突然灵光一闪,想到一种很简 ...
- 前端技术之:如何在控制台将JS class实例输出为JSON格式
有一个类: class Point { constructor(x, y) { this.x = x; this.y = y; } } 如果我们在控制台中输出其实例: console.log(new ...
- js判断字符串是否为JSON格式
不能简单地使用来判断字符串是否是JSON格式: function isJSON(str) { if (typeof str == 'string') { try { JSON.parse(str); ...
- js Form表单转json格式,及后台接收(多种方法)
转载:https://blog.csdn.net/qq_40138785/article/details/81533015 一.serialize()方法格式:var data = $("# ...
- js 判断字符串是否为JSON格式
function isJSON(str) { if (typeof str == 'string') { try { var obj=JSON.parse(str); if(typeof obj == ...
- js之封装sort实现json格式数据的排序
eg : data:{[ {"name":"paul","ege":12}, {"name":"paul&q ...
- JS 对java返回的json格式的数据处理
var dataObj=eval("("+res+")"); alert(dataObj.billBuy) //res是如下的数据 {"billBuy ...
- JSON(二)——JavaScript中js对象与JSON格式字符串的相互转换
首先我们来看一下js中JSON格式的字符串 var JSONStr1 = "{\"name\" : \"张三\"}"; 注意以下的写法不是j ...
- JS 验证字符串是否能转为json格式
var isJSON=function (str) { if (typeof str == 'string') { try { var obj = JSON.parse(str); if (typeo ...
随机推荐
- python迭代器,生成器,推导式
可迭代对象 字面意思分析:可以重复的迭代的实实在在的东西. list,dict(keys(),values(),items()),tuple,str,set,range, 文件句柄(待定) 专业角度: ...
- String类练习统计一个字符串中大小写字母及数字字符个数
public class StringPractice { public static void main(String[] args) { //创建一个文本扫描器 Scanner sc = new ...
- BZOJ : [Usaco2013 Nov]Crowded 单调队列
正反两遍个来一次单调队列 DP 即可. Code: #include<cstdio> #include<deque> #include<algorithm> usi ...
- 上传菜品数据&生成点餐二维码
基础数据上传 在门店助手打开数据上传功能,点击上传到微餐厅3.0,,即将门店本地的基础数据上传到线上. 注意1:上传前,需要在线下系统维护好基础数据 注意2:线下基础数据发生更改时,需要手动在门店助手 ...
- Day6 函数和模块的使用
函数和模块的使用 在讲解本章节的内容之前,我们先来研究一道数学题,请说出下面的方程有多少组正整数解. $$x_1 + x_2 + x_3 + x_4 = 8$$ 事实上,上面的问题等同于将8个苹果分成 ...
- Linux 中,基础命令 command not found...问题
linux中出现基本命令找不到的问题,经过查找发现是/etc/profile文件出现了问题,解决方案如下: 问题详细: [root@master ~]# ll bash: ls: command no ...
- OpenCV实现USM锐化与测试
OpenCV实现USM锐化 [转]http://www.programdevelop.com/4964391/ USM (Unsharp masking) is a common operation ...
- 【习题 4-2 Uva201】Squares
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 注意那个星号的数量... 然后V x y的话,是从(y,x)向(y+1,x)连线. H x y才是从(x,y)向(x,y+1)连线 ...
- elasticsearch Suggester实现搜索建议(八)
Completion Suggester 智能提示 { "settings": { }, "mappings": { "doc": { &q ...
- cogs 9. 中心台站建设。。。
9. 中心台站建设 ★★☆ 输入文件:zpj.in 输出文件:zpj.out 简单对比时间限制:1 s 内存限制:128 MB [问题描述] n个城市之间有通讯网络,从这n个城 ...