Я пытаюсь реализовать автозаполнение Jquery с помощью DevBridge(http://www.devbridge.com/projects/autocomplete/jquery/). Это делает вызов AJAX, и в их примере используется веб-служба .NET. Я планирую использовать веб-метод.
Я создал страницу с именем WebMethodTest.aspx и добавил в нее простой веб-метод. Код выглядит следующим образом:
using System;
using System.Web.Services;
public partial class WebMethodsTest : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e) { }
[WebMethod]
public static string Test()
{
return "blah blah blah";
}
}
Я ничего не добавлял в web.config и не делал никаких других настроек.
Вызов URL через браузер и скрипт (http://myurl/WebMethodTest.aspx/Test) возвращает ничего.
Я предполагаю, что могу сделать обычный HTTP-запрос, и он вернет строку «бла-бла-бла».
Обратите внимание: я провел обширный поиск, чтобы увидеть, есть ли что-то очевидное, что я пропустил. Многочисленные подобные вопросы есть здесь, на SO и в других местах, но многие из них вращаются вокруг неправильного формата JSON и т. Д. Я думаю, что мой веб-метод просто не вызывается.
So:
- Является ли обычный HTTP-запрос допустимым способом проверки веб-метода? Если нет, то как?
- Можно ли протестировать веб-метод без клиентской части AJAX?
NB: я вижу много «решений», в которых упоминается включение веб-методов в ScriptManager — я думал, что это актуально только при использовании ASP.NET AJAX (а это не так).
То немногое, что у меня осталось, становится все тоньше. Приветствуются все предложения :)
ta
EDIT Я считаю, что URL-адрес, который я тестировал (сторонний, который действительно вернул строку JSON), мог быть чем-то другим, а не веб-методом. Я предполагал, что мой тоже должен возвращать ответ браузеру — это было плохое предположение.
Как указал @mgnoonan, Возможно ли выполнять запросы JSON с помощью построителя запросов Fiddler?, имеет правильный синтаксис для тестирования с помощью Fiddler.
Я использовал:
POST http://xxx/WebMethods/WebMethodsTest.aspx/Test
и
User-Agent: Fiddler
Host: xxx
Content-Type: application/json; charset=utf-8
Content-Length: 0
Это вернуло ожидаемую строку. :)
PS есть ли способ пометить комментарий как ответ?
Transfer-Encoding: chunked
, и он вернул 200, но без содержимого (длина содержимого: 0). :( - person Jag   schedule 25.04.2012