zoukankan      html  css  js  c++  java
  • 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于客户端发布在同一个根目录下,如图所示



  • 相关阅读:
    页面实现文件的下载
    微信小程序拉起登录的操作
    css3之border-radius理解
    web前端常用网站--更新中
    小程序中遇见文件过大的话就需要分包
    JS中的“&&”与“&”和“||”“|”有什么区别?
    ts中有时莫名报错
    浏览器解析JavaScript的原理
    在vue中axios的问题
    eslint的规则
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3202909.html
Copyright © 2011-2022 走看看