在非同步應用程式中傳送和接收資訊時,常見的可以選擇以純文字和XML作為資料格式(可參考《jQuery學習筆記之Ajax用法例項詳解》),現在還有一種比較流行的方式:JSON(JavaScript Object Notation)。好了,下面舉例說明這三種資料格式在ajax的非同步應用。
一、純文字方式
1、傳送/接收資料:
Code is cheap.看程式碼:
testJs.js
// 此函式等價於document.getElementById /document.all
function $(s) { if (document.getElementById) { return eval("document.getElementById("" + s + "")"); } else { return eval("document.all." + s); } }
// 建立 XMLHttpRequest物件,以傳送ajax請求
function createXMLHTTP() {
var xmlHttp = false;
var arrSignatures = ["MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0",
"MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP",
"Microsoft.XMLHTTP"];
for (var i = 0; i < arrSignatures.length; i++) {
try {
xmlHttp = new ActiveXObject(arrSignatures[i]);
return xmlHttp;
}
catch (oError) {
xmlHttp = false; //ignore
// throw new Error("MSXML is not installed on your system.");
if (!xmlHttp && typeof XMLHttpRequest != "undefined") {
xmlHttp = new XMLHttpRequest();
var xmlReq = createXMLHTTP();
// 傳送ajax處理請求(這裡簡單驗證使用者名稱和密碼的有效性,預設正確的輸入:使用者名稱和密碼都是test)
function validatePwd(oTxt) {
var url = "/AjaxOperations.aspx";
xmlReq.open("post", url, true);
xmlReq.setRequestHeader("Content-Length", oTxt.value.length + $("txtUserName").value.length);
xmlReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlReq.onreadystatechange = callBack;
xmlReq.send("action=chkPwd&userInfos=" + escape(oTxt.value + "/" + $("txtUserName").value)); // 傳送文字
function callBack() {
if (xmlReq.readyState == 4) {
if (xmlReq.status == 200) {
alert(xmlReq.responseText); // 接收文字
else if (xmlReq.status == 404) {
alert("Requested URL is not found.");
} else if (xmlReq.status == 403) {
alert("Access denied.");
} else
alert("status is " + xmlReq.status);
在非同步應用程式中傳送和接收資訊時,常見的可以選擇以純文字和XML作為資料格式(可參考《jQuery學習筆記之Ajax用法例項詳解》),現在還有一種比較流行的方式:JSON(JavaScript Object Notation)。好了,下面舉例說明這三種資料格式在ajax的非同步應用。
一、純文字方式
1、傳送/接收資料:
Code is cheap.看程式碼:
testJs.js
// 此函式等價於document.getElementById /document.all
function $(s) { if (document.getElementById) { return eval("document.getElementById("" + s + "")"); } else { return eval("document.all." + s); } }
// 建立 XMLHttpRequest物件,以傳送ajax請求
function createXMLHTTP() {
var xmlHttp = false;
var arrSignatures = ["MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0",
"MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP",
"Microsoft.XMLHTTP"];
for (var i = 0; i < arrSignatures.length; i++) {
try {
xmlHttp = new ActiveXObject(arrSignatures[i]);
return xmlHttp;
}
catch (oError) {
xmlHttp = false; //ignore
}
}
// throw new Error("MSXML is not installed on your system.");
if (!xmlHttp && typeof XMLHttpRequest != "undefined") {
xmlHttp = new XMLHttpRequest();
}
return xmlHttp;
}
var xmlReq = createXMLHTTP();
// 傳送ajax處理請求(這裡簡單驗證使用者名稱和密碼的有效性,預設正確的輸入:使用者名稱和密碼都是test)
function validatePwd(oTxt) {
var url = "/AjaxOperations.aspx";
xmlReq.open("post", url, true);
xmlReq.setRequestHeader("Content-Length", oTxt.value.length + $("txtUserName").value.length);
xmlReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlReq.onreadystatechange = callBack;
xmlReq.send("action=chkPwd&userInfos=" + escape(oTxt.value + "/" + $("txtUserName").value)); // 傳送文字
}
function callBack() {
if (xmlReq.readyState == 4) {
if (xmlReq.status == 200) {
alert(xmlReq.responseText); // 接收文字
}
else if (xmlReq.status == 404) {
alert("Requested URL is not found.");
} else if (xmlReq.status == 403) {
alert("Access denied.");
} else
alert("status is " + xmlReq.status);
}
}