JavaScript XMLHttpRequest GetUrlResponse 前端向後端傳值並獲得XML格式Response.
阿新 • • 發佈:2018-12-09
同步方式一般用於需要對觸發結果執行動作。
比如點選button彈出新的頁面, 頁面中獲取到Response的值,需要對彈出頁面進行處理。
非同步方式用於不需對觸發結果執行動作。
比如觸發結果是頁面多加一些元素,或者取到或更新某些值。不需要對這些元素和值進行處理。
同步方式
//url處理資料的檔案地址(c# url通常是處理前臺資料的ashx檔案在伺服器的地址) function GetUrlResponse(url) { var xhttp; if (window.XMLHttpRequest)//code for all new browsers. xhttp = new XMLHttpRequest(); else if (window.ActiveXObject)//code for IE5 and IE6 xhttp = new ActiveObject("Microsoft.XMLHTTP"); else alert("Your browser does not support XMLHTTP."); xhttp.open("POST", url, false);//false 表示同步 xhttp.send(); if (xhttp.status.toString() == "200") { var doc = xhttp.responseText; return doc.toString(); } else { return xhttp.responseText; } }
非同步方式
//url處理資料的檔案地址(c# url通常是處理前臺資料的ashx檔案在伺服器的地址) function GetUrlResponse(url) { var xmlhttp; if (window.XMLHttpRequest)//code for all new browsers. xmlhttp = new XMLHttpRequest(); else if (window.ActiveXObject)//code for IE5 and IE6 xmlhttp = new ActiveObject("Microsoft.XMLHTTP"); if (xmlhttp != null) { xmlhttp.onreadystatechange = state_Change(xmlhttp);//onreadystatechange控制代碼在下一句確定非同步後觸發 xmlhttp.open("POST", url, true);//非同步 xhttp.send();//傳遞引數 } else alert("Your browser does not support XMLHTTP."); } function state_Change(xmlhttp) { debugger; if (xmlhttp.readyState == 4) { //4="loaded" if (xmlhttp.status == 200) { // 200 = OK //the code you want to process. } else { alert("Problem retrieving XML data."); } } }