Как использовать веб-сервис asmx с jQuery?

Я видел много разных ответов в Интернете и много копировал и вставлял. Это просто не работает для меня. Кто-нибудь может сказать мне, почему? Я так расстроен>_<Нужно ли что-то делать с моим файлом web.config? Я не понимаю, что даже мой "WebService.asmx / add" не будет ничего возвращать из моего браузера (потому что такой ссылки нет.) Как jQuery получит какой-либо результат? Я должен добавить несколько httphandlers, верно? введите описание изображения здесь

2 ответа

Как я вижу на вашем изображении, ваш веб-метод не имеет статического метода.

Веб-метод должен быть статическим методом, чтобы использовать сервис. WebMethod и Static

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

Пожалуйста, перейдите по этой ссылке для получения дополнительной информации

  1. WebService и Jquery

Я не знаю, меня ненавидят или как. Просто мне никто не отвечает. Очень грустный. ...>_ <... После нескольких дней исследований я нашел способ работать. Атрибут должен сериализовать данные в виде строки 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.

ОТЛИЧНО!

Другие вопросы по тегам