【学习篇:他山之石,把玉攻】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 FilesReference AssembliesMicrosoftFrameworkv3.0去找System.Web.Extentions.dll这个动态库,所以此时 应该将物理路径C:Program FilesReference AssembliesMicrosoftFrameworkv3.5中的动态库System.Web.Extentions.dll拷贝到路径C: Program FilesReference AssembliesMicrosoftFrameworkv3.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于客户端发布在同一个根目录下,如图所示


本文转自:http://blog.csdn.net/zjt107/article/details/9384517  感谢作者分享!


原文地址:https://www.cnblogs.com/cooldepeng/p/3201722.html