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> %> 显示结果为无刷新显示当前的服务器时间
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章