JS和PHP之間以JSON格式傳輸
阿新 • • 發佈:2018-01-28
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或304alert(xhr.responseText); } ------華麗的分割線----------------------------------------------------
//後端 <?php $info = $_POST["user"]; // 這個時候的info是一個字符串 $result = json_decode($info); // 這個時候的result已經被還原成對象 echo $result -> name;
第二個例子:
//PHP發送數據JSON數據 Javascript以ajax接收JSON //前端 var xhr = newXMLHttpRequest; 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格式傳輸