Я пытаюсь вызвать простой веб-сервис, такой как на стороне клиента:
$.ajax({
type: "POST",
url: "/service/local/newsservice.asmx/DoPost", // "/news/post/do",
data: {
title: _title,
markdown: _markdown,
categoryId: 1
},
success: function (data) {
alert("success!");
}
});
Фактический сервис:
[WebService(Namespace = "http://service.site.com/service/news")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
[ScriptService]
public class NewsService : System.Web.Services.WebService
{
[WebMethod]
[ScriptMethod]
public static void DoPost(string title, string markdown, int categoryId)
{
if (!(Roles.IsUserInRole("Owner") || Roles.IsUserInRole("Administrator")))
return;
CommunityNews.Post(title, markdown, categoryId);
}
}
При использовании переписанного URL,который указывает на "/service/local/newsservice.asmx/DoPost"
, я получаю следующую ошибку:
HTTP-глагол POST, используемый для доступа к пути '/service/local/newsservice.asmx/DoPost', не допускается.
Когда я использую простой URL-адрес, я получаю вместо этого (через Firebug приложение молча завершается ошибкой):
Недопустимое имя метода веб-службы DoPost.
Что может происходить?