js調用web service兼談無刷新

以前用過xmlhttp調用一個無格式的aspx或asp文件,可以實現無刷新,充分利用前臺腳本的優勢來實現一些特殊應用,今天清晨試了一下還是用xmlhttp來調用web service,查了msdn,效果還是不錯(有的同志已經我的成果收藏了,剛剛搜blog時,呵呵),但一直都有安全問題提示,如果誰有解決這個問題,告知我一下!
加入<%%>避免blog顯示爲html格式了 <%<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="WebApplication2.WebForm1" %>
<script language=javascript> getWebServiceResultsAfterInit(); //setTimeout(getWebServiceResultsAfterInit,1000); //網友提示這個不行,呵呵,改用setInterval了 setInterval(getWebServiceResultsAfterInit,1000); function myfunc() { // var divFeatures = document.getElementById("divWebServiceResults"); //divFeatures.innerHTML = "111"; } var objXmlDoc; var objHttp; var bHttp = false; function getWebServiceResultsAfterInit() { //以下這些判斷是msdn的,比我想得全,呵呵,不過,如果不是IE,估計呵呵 if(!bHttp) { var aszHttpProgIDs = [ "MSXML2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP" ]; for (var i = 0; !bHttp && i < aszHttpProgIDs.length; i++) { try { objHttp = new ActiveXObject(aszHttpProgIDs[i]); bHttp = true; } catch (objException) { // error handling elided for clarity //alert('e'); } } } // If we failed to create both objects, then throw an exception and return //alert(3); if (!bHttp) { throw "MSXML not found on your computer."; return; } // Get the parameter //var oParameter = ;//document.getElementById("divWebServiceResults"); // var szParameter = "111";//oParameter.value; // Create the SOAP Envelope //這個soap的頭,需要根據你的web service來填寫,如是不是要傳入參數等,我的web service就是測試,顯示一下時間,所以沒有傳入數據 strEnvelope = "" + " " + //" " + // " " + szParameter + "" + // // " " + " " + "" // Set up the post //alert(strEnvelope); //objHttp.onreadystatechange = getWebServiceResultsAfterLoad(); objHttp.open("post", "http://192.168.0.1/WebService1/Service1.asmx/HelloWorld",false); objHttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8"); objHttp.setRequestHeader("SOAPAction", "http://192.168.0.1/WebService1/Service1.asmx/HelloWorld"); objHttp.send(strEnvelope); //以下爲取得返回結果,如果是xml,還得考慮一下 var szResponse = objHttp.responseText; //alert(szResponse); divWebServiceResults.innerHTML = szResponse; } //這個無意義 function getWebServiceResultsAfterLoad() { if (objHttp.readyState == 4) { // Get the return envelope var szResponse = objHttp.responseText; // alert(szResponse); divWebServiceResults.innerHTML = szResponse; } } </script> %> 顯示結果爲無刷新顯示當前的服務器時間
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章