Я использую простой сервис WCF с поддержкой ajax. Я создаю строку XML на клиенте и делаю get (по умолчанию). Вот код Я вижу атрибут «WebGet», но нет «WebPost»
[OperationContract, WebGet(ResponseFormat = WebMessageFormat.Json)]
public string PrepareDoc(string inputXML)
{
var arg = new CommandArg();
arg.ParamCollection.Add("inputXML", inputXML);
var result = LetterBLL.DoLetter(new PrepareDocCmd(), arg);
return result.ScalarResult.ToString();
}
Возвращает сериализованную строку, которую я могу проверить на клиенте. Это все работает хорошо. У меня действительно есть проблема, когда inputXML превышает максимальную длину IE Url 2048. Я получаю ошибку JavaScript, говоря, что ресурс недоступен. Решение, помимо уменьшения URL-адреса, заключается в переключении на POST. Как я могу это сделать? Также я должен отправлять JSON в службу вместо строки XML
На клиенте я регистрирую сервисную ссылку в диспетчере скриптов, чтобы он создавал прокси-объекты. Я звоню в сервис из JavaScript, как это. _prepareDoc ссылается на метод службы внутри объекта клиента.
this._prepareDoc(sb.toString(), successFunc, failFunc, this);
Как мне изменить это, чтобы сделать пост? Также на сервере, что мне нужно изменить? В настоящее время я принимаю строку XML в качестве ввода.
Большое спасибо за любые советы,
~ ck в Сан-Диего