我正在使用一个简单的启用Ajax的WCF服务。我正在客户端创建一个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作为输入。
非常感谢任何提示, 〜在圣地亚哥
答案 0 :(得分:3)
怎么样:
[OperationContract,
WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json)]