jquery实现调用webservice
1、webservice端
using System;
 using System.Collections.Generic;
 using System.Web;
 using System.Web.Services;
 using System.Configuration;
 using System.Data.SqlClient;
 using System.Data;
 /// <summary>
 ///WebService 的摘要说明
 /// </summary>
 [WebService(Namespace = "http://tempuri.org/")]
 [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
 //若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。 
 [System.Web.Script.Services.ScriptService]
 public class WebService : System.Web.Services.WebService {
     public WebService () {
 
         //如果使用设计的组件,请取消注释以下行 
         //InitializeComponent(); 
     }
 
     [WebMethod]
     public string HelloWorld(string userName) {
         return "Hello World"+userName;
     }
}
红色部分在vs2010中编译会报错,找不到“System.Web.Script”引用。
解决办法:经在网上查阅属于vs2010的一个bug,当编译框架选择为.Net3.5 Framework时,程序却在物理路径C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0去找System.Web.Extentions.dll这个动态库,所以此时应该将物理路径C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5中的动态库System.Web.Extentions.dll拷贝到路径C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0下面。
2、客户端
 <script src="js/jquery.js" type="text/javascript"></script>
      <script type="text/javascript">
          $(document).ready(function () {
              $("#Button1").click(function () {
                  try {
                      $.ajax({
                          type: "POST",  //访问WebService使用post方式请求
                          contentType: "application/json;utf-8",   //WebService会返回json类型
                          url: "http://localhost:8321/WebService.asmx/HelloWorld", //调用WebService的地址和方法名称组合
                          data: "{userName:'Jodie'}",  //这里是要传递的参数,格式为data:"{paraName:paraValue}"
                          dataType: "json",
                          success: function (result) {
                              $("#result").html(result.d);
                              alert(result.d);
                          }
                      })
                  }
                  catch (ex) {
                      alert(ex);
                  }
              })
          })
        
     </script>
完成客户端与服务器端的编写后调试发现,在IE中正常,但是在FireFox中死活出不来,这时郁闷了……百思不得其解,最终发现是跨域问题
解决办法:将webservice于客户端发布在同一个根目录下,如图所示
 
 
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号