zoukankan      html  css  js  c++  java
  • ajax 调用 webService

    前台脚本<script type="text/javascript">
            $(function () {
                $.ajax({
                    type: "POST", //访问WebService使用Post方式请求
                    contentType: "application/json", //请求WebService 返回的数据类型(默认是xml,这里声明成了Json)
                    url: "WebService.asmx/ReverseString", //调用WebService的地址和方法名称组合 ---- WsURL/方法名
                    data: "{ value1: '明天到操场操到天明' }", //这里是要传递的数据(string格式的),JSON格式的为 data: "{paraName:paraValue}"
                    dataType: 'json', //请求webService时,将webService传递回来的数据当作成一个JSON。
             cache:false,//强迫当前请求必须访问后台,不能使用客户端的缓存
    success: function (result) {//回调函数,result,返回值 alert(result.d); } }); }); </script>

    前台代码注意点:

      1、 声明了返回值和传输值为JSON格式的时候,传递的data应该是json格式的字符串,否则chrome会报错

      2、关于result.d,很多博客都没有说明。返回的json字符串的key之所以是d,是为了确保安全(防止XSS攻击)(http://blog.sina.com.cn/s/blog_6c762bb30100wqs9.html)

    后台代码

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Services;
    
    namespace Demo
    {
        /// <summary>
        /// WebService 的摘要说明
        /// </summary>
        [WebService(Namespace = "http://tempuri.org/")]
        [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
        [System.ComponentModel.ToolboxItem(false)]
        // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
        [System.Web.Script.Services.ScriptService]
        public class WebService : System.Web.Services.WebService
        {
            [WebMethod]
            public string ReverseString(string value1)//这个方法的参数一定要和ajax的data中的key的名字相同,这里是value1,ajax中data的key也是value1
            {
                char[] arr = value1.ToCharArray();
                Array.Reverse(arr);
                value1 = new string(arr);
                return value1;                       //返回的string会自动转换成JSON?           
            }
        }
    }

     如果是本项目中ajax请求后台,那么优先推荐使用一般处理程序。

  • 相关阅读:
    第一次 实习笔记
    docker 提示 Drive has not been shared 错误
    使用matplotlib画出log的图像
    python基础实现tcp文件传输
    django简单实现注册登录模块
    python使用消息队列RabbitMq(进阶)
    scrapy爬虫值Items
    redis常见配置redis.conf
    js实现往数组中添加非存在的对象,如果存在就改变键值。
    CSS之user-select——设置标签中的文字是否可被复制
  • 原文地址:https://www.cnblogs.com/vichin/p/7269030.html
Copyright © 2011-2022 走看看