Конечно его можно зарегить в системе, так, чтобы в яваскрипте появился специальный класс, для обращения к функциям сервиса, но для мееня это не подходило, я просто сам хотел отправлять и формировать POST/GET запросы, определаять формат возвращаемых данных.
В итоге начал смотреть в сторону класса Sys.Net.WebRequest, чем он примечателен:
позволяет нам создать запрос куда угодно, будь то страница или вебсервис.
ну да не будем разглагольствовать, лучше сразу пример:
7 <script type="text/javascript" language="javascript">
8 function sendYouName() {
9 var request = new Sys.Net.WebRequest();
10
11 request.set_url("ajax.ashx");
12 request.set_httpVerb("POST");
13
14 var body = "myName=" + $get("txtYouName").value;
15
16 request.set_body(body);
17 request.get_headers()["Content-Length"] = body.length;
18
19 request.add_completed(compliteSendName);
20
21 request.invoke();
22
23 return false;
24 }
25
26 function compliteSendName(sender, args) {
27 if (sender.get_responseAvailable) {
28 alert(sender.get_responseData());
29 }
30 else {
31 alert("Ошибка!");
32 }
33 }
34 </script>
35
36 Введите ваше имя: <input type="text" value="" id="txtYouName" /> <input type="button" onclick="javascript:return sendYouName();" value="Отправить" />
39 function sendToGetClasses() {
40 var request = new Sys.Net.WebRequest();
41
42 request.set_url("ajax.asmx/GetMyObjects");
43 request.set_httpVerb("POST");
44
45 var body = "{ 't':1 }"; // + $get("txtYouName").value;
46
47 request.set_body(body);
48 request.get_headers()["Content-Length"] = body.length;
49 request.get_headers()["Accept"] = "application/json, text/javascript, */*";
50 request.get_headers()["Content-Type"] = "application/json";
51 request.add_completed(compliteToGetClasses);
52
53 request.invoke();
54
55 return false;
56 }
Оюратите внимание на 42-ю строчку - там для обращения к функции вебсервися через слешь написано название нужной функции, собственно ниже описание:
28 public class MyObject
29 {
30 public int ID;
31 public string Title;
32 }
33
34 [WebMethod]
35 [ScriptMethod(ResponseFormat=ResponseFormat.Json)]
36 public List<MyObject> GetMyObjects(int t)
37 {
38 var list = new List<MyObject>();
39
40 for (int i = 0; i < 10; i++)
41 list.Add(new MyObject { ID = i, Title = "Объект " + i });
42
43 return list;
44 }
тут для наглядности я возвращаю список объектов своего класса, а в яваскрипте мы можем обратиться к результатам уже как к списоку объектов с теми же полями, что и в моем классе :) яху!!!!