如何使用jQuery使用asmx Web服务?

时间:2013-03-11 15:38:57

标签: jquery ajax web-services web-config asmx

我在网上看到了很多不同的答案,并做了大量的复制和粘贴。它对我不起作用。谁能告诉我为什么? 我很沮丧> _< 我是否必须在web.config文件上执行某些操作? 我不明白,即使我的“WebService.asmx / add”也不会从我的浏览器返回任何内容(因为没有这样的链接。)jQuery将如何得到任何结果?我必须添加一些httphandler,对吧?enter image description here

2 个答案:

答案 0 :(得分:1)

正如我在图片中看到的那样,您的网络方法没有静态方法。

webme方法应该是静态方法,以便使用服务。 WebMethod and Static

[WebMethod]
Public static string HelloWorld()
{
 return "Hi";
}

请通过此链接获取更多信息

  1. WebService and Jquery

答案 1 :(得分:0)

我不知道我是被憎恨还是被憎恨。没有人回答我。 很伤心。 ...> _< ... 经过几天的研究,我找到了一些方法 该属性需要序列化数据,因为JSON字符串是

[System.Web.Script.Services.ScriptService]

所以我的asmx代码为

<%@ WebService Language="C#" Class="WebService" %>

using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Web.Script.Services;
using System.Data;
using System.Data.SqlClient;
[System.Web.Script.Services.ScriptService]
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class WebService  : System.Web.Services.WebService {

[WebMethod]    
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string HelloWorld() {
    return "Hello World";
}
[WebMethod]    
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public int add(int a, int b)
{
    return a + b;
}

}

我的jQuery代码为

       $(
        function () {
            $.ajax({
                type: "POST",
                url: 'WebService.asmx/add',
                data: "{'a':15, 'b':20}", //be careful! do pass it as a string
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (msg) {
                    alert(msg.d);
                },
                error: function (e) {
                    alert("WebSerivce unreachable");
                }
            });
        }
    );

正确返回35。

NICE!