ajax 调用 webService

Posted 水墨晨诗

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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: ‘明天到操场操到天明‘ }", //这里是要传递的参数,格式为 data: "{paraName:paraValue}"
                dataType: json, //请求webService时,给webService传递数据的格式。
                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请求后台,那么优先推荐使用一般处理程序。

以上是关于ajax 调用 webService的主要内容,如果未能解决你的问题,请参考以下文章

jquery中通过ajax调用webservice传递数组参数的问题

AJAX调用WebService的方法是如何调用?

如何在调用WebService方法时,传递对象数组参数

如何在ASP.net中调用webservice里的一个方法

Ajax调用WebService接口样例

Ajax 调用webservice 解决跨域请求和发布到服务器后本地调用成功外网失败的问题