• 【学习篇:他山之石,把玉攻】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  感谢作者分享!


  • 相关阅读:
    Javascript 中的浮点数精度丢失问题
    react中使用字符串中生成HTML
    前端-HTML规范
    js 数组(Array)的使用
    ES6变量声明解析
    cookies sessionlStorage和localStroage的区别
    面向对象
    迭代器、生成器、装饰器
    内置函数和文件读取
    函数
  • 原文地址:https://www.cnblogs.com/cooldepeng/p/3201722.html
Copyright © 2020-2023  润新知