1. 程式人生 > >JS和PHP之間以JSON格式傳輸

JS和PHP之間以JSON格式傳輸

ray nbsp 單例 補充 接收 文本 語言 ext tex

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格式傳輸