【问题标题】:ASP.NET Ajax-enabled WCF Service, how can I 'post' instead of 'get'?支持 ASP.NET Ajax 的 WCF 服务,我如何“发布”而不是“获取”?
【发布时间】:2011-01-03 13:48:53
【问题描述】:

我正在使用一个简单的支持 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 超过 2048 的 IE Url 最大长度时,我确实遇到了问题。我收到一个 JavaScript 错误,提示资源不可用。除了缩小 URL 之外,解决方案是切换到 POST。我怎样才能做到这一点?我也应该将 json 发送到服务而不是 XML 字符串

在客户端上,我在脚本管理器中注册服务引用,以便它创建代理对象。我像这样从javascript调用服务。 _prepareDoc 引用客户端对象内的服务方法。

 this._prepareDoc(sb.toString(), successFunc, failFunc, this);

如何更改此内容以发布帖子?同样在服务器上,我需要更改什么?我目前正在接受一个 XML 字符串作为输入。

非常感谢任何提示, ~ck 在圣地亚哥

【问题讨论】:

    标签: asp.net ajax wcf http asp.net-ajax


    【解决方案1】:

    怎么样:

    [OperationContract,
     WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json)]
    

    【讨论】:

      猜你喜欢
      • 2016-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多