关于Ajax跨域请求WebService
1、前台脚本段
1 <script type="text/javascript" language="javascript"> 2 var url = window.location.protocol + "//" + window.location.host; 3 if (window.location.port != "") { 4 url += ":" + window.location.port 5 } 6 //跨域访问 7 var strUrl = url + "/WebService/OAService.asmx/EncryptDES?jsoncallback=?"; 8 $.ajax({ 9 async: false, 10 url: strUrl, 11 data: {"encryptString":"powerpip"}, 12 dataType: "jsonp", 13 success: function (json) { 14 dataResult = json.result; 15 alert(dataResult); 16 }, 17 error: function (XMLHttpRequest) { 18 alert("error"); 19 } 20 }); 21 </script>
2、WebService
1 // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。 2 [System.Web.Script.Services.ScriptService] 3 4 5 6 [WebMethod(Description = "DES加密字符串")] 7 public void EncryptDES(string encryptString) 8 { 9 ComOp com = new ComOp(); 10 string result = com.EncryptDES(encryptString, com.EncryptKey); 11 string callback = HttpContext.Current.Request["jsoncallback"]; 12 HttpContext.Current.Response.Write(callback + "({result:'" + result + "'})"); 13 HttpContext.Current.Response.End(); 14 }
3、Web.Config
1 <system.web> 2 <webServices> 3 <protocols> 4 <add name="HttpPost"/> 5 <add name="HttpGet"/> 6 </protocols> 7 </webServices> 8 9 </system.web>

浙公网安备 33010602011771号