关于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>

 

posted @ 2015-03-23 19:13  breakocean  阅读(149)  评论(0)    收藏  举报