<input name="submit" type="button" id="submit" value="向伺服器發出請求" /> <script> window.onload = function () { //頁面初始化 var b = document.getElementsByTagName("input")[0]; b.onclick = function () { var url = "server.php?callback=functionName"; //設定查詢字串 var xhr = createXHR(); //範例化XMLHttpRequest 物件 xhr.open("GET", url, false); //建立連線,要求同步響應 xhr.send(null); //傳送請求 console.log(xhr.responseText); //接收資料 } } </script>在伺服器端檔案(server.php)中輸入下面的程式碼,獲取查詢字串中 callback 的引數值,並把該值響應給用戶端。
<?php echo $_GET["callback"]; ?>在瀏覽器中預覽頁面,當單擊提交按鈕時,在控制台顯示傳遞的引數值。
?
作為字首附加在 URL 的末尾,傳送資料是以連字元&
連線的一個或多個名值對。
send("name1=value1&name2=value2...");
window.onload = function () { //頁面初始化 var b = document.getElementsByTagName("input")[0]; b.onclick = function () { var url = "server.php"; //設定請求的地址 var xhr = createXHR(); //範例化XMLHttpRequest 物件 xhr.open("POST", url, false); //建立連線,要求同步響應 xhr.setRequestHeader ('Content-type', 'application/x-www-form-urlencoded'); //設定為表單方式提交 xhr.send("callback=functionName"); //傳送請求 console.log(xhr.responseText); //接收資料 } }在 open() 方法中,設定第一個引數為 POST,然後使用 setRequestHeader() 方法設定請求訊息的內容型別為“application/x-www-form-urlencoded”,它表示傳遞的是表單值,一般使用 POST 傳送請求時都必須設定該選項,否則伺服器無法識別傳遞過來的資料。
<?php echo $_POST["callback"]; ?>
{ user : "css8", pass : "123456", email : "[email protected]" }將 JSON 資料轉換為序列格式化顯示如下。
'user="css8" & pass="123456" & email="[email protected]"'
[{name : "user", value : "css8"} , {name : "pass", value : "123456"), {name : "email", value : "[email protected]"}]將上面資料轉換為序列格式顯示如下。
'user="css8" & pass="123456" & email="[email protected]"'
//把JSON資料轉換為序列字串 //引數:data表示陣列或物件型別的資料 //返回值:序列字串 function JSONtoString (data) { var a = []; //臨時陣列 if (data.constructor == Array) { //處理陣列 for (var i = 0; i < data.length; i ++) { a.push(data[i].name + "=" + encodeURIComponent(data[i].value)); } } else { //處理物件 for (var i in data) { a.push(i + "=" + encodeURIComponent(data[i])); } } return a.join("&"); //把陣列轉換為序列字串,並返回 }