ajax核心代碼

來源:互聯網
上載者:User

以下代碼是經過本人大量實驗,結合他人資料總結出來一段ajax核心代碼,比較靈活,傳參可以用POST和GET,可以返回TEXT和XML
<script language="javascript">
// JavaScript Document
var http_request = false;
//發送請求,第一個參數為目的地址,第二個參數為要求方法只有"GET"、"POST"
//第三個參數為需要傳送的參數列表key1=value1&key2=value2
//第四個參數為響應資訊類型只能為"TEXT"或"XML"
function send_request(url,method,params,responseType)
{//初始化、指定處理函數、發送請求的函數
http_request = false;
//開始初始化XMLHttpRequest對象
if(window.XMLHttpRequest) 
{ //Mozilla 瀏覽器
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) 
{//設定MiME類別
http_request.overrideMimeType('text/xml');
}
}
else if (window.ActiveXObject) 
{ // IE瀏覽器
try 
{
http_request = new ActiveXObject("Msxml2.XMLHTTP");

catch (e) 
{
try 
{
http_request = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) 
{}
}
}
if (!http_request) 
{ // 異常,建立對象執行個體失敗
window.alert("不能建立XMLHttpRequest對象執行個體.");
return false;
}
http_request.onreadystatechange = function(){processRequest(responseType)};
if (method=="GET")
{
// 確定發送請求的方式和URL以及是否同步執行下段代碼
http_request.open(method, url+"?"+params, true);
http_request.send(null);
}
else if(method=="POST")
{
http_request.open(method, url, true);
http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
http_request.send(params);
}
else 
{
alert("無效的method!method只能為:GET或POST");
}
}

// 處理返回資訊的函數
function processRequest(responseType)
{
        if (http_request.readyState == 4)
{ // 判斷對象狀態
            if (http_request.status == 200) 
{ // 資訊已經成功返回,開始處理資訊

if (responseType=="TEXT")
{
                alert(http_request.responseText);
}
else if(responseType=="XML")
{
alert(http_request.responseXML);
}
else
{
alert("無效的響應資訊類型!只能為:TEXT或XML");
}

/*
alert(http_request.responseText);
*/

            } 
else 
{ //頁面不正常
                alert("您所請求的頁面有異常。");
            }
        }
}

function userCheck() 
{
alert("a");
send_request('postback.asp',"POST","name=arlang","TEXT");
alert("b");
}
</script>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.