2010-01-10 48 views
0

我正在使用一個簡單的啓用ajax的WCF服務。我在客戶端上創建了一串XML,並執行get(默認情況下)。這是代碼。我看到「WebGet」屬性,但沒有「的WebPost」支持ASP.NET Ajax的WCF服務,我該如何'發佈'而不是'獲取'?

[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(); 
    } 

這將返回一個序列化的字符串,我可以在客戶端上EVAL。這一切都很好。當inputXML超過2048的IE Url最大長度時,我確實有問題。我收到一個javascript錯誤,說資源不可用。除了縮小URL之外,解決方案是切換到POST。我怎樣才能做到這一點?我也應該發送json到服務而不是XML字符串

在客戶端,我在服務引用中註冊腳本管理器,以便它創建代理服務器對象。我像這樣從javascript調用服務。 _prepareDoc引用客戶端對象內的服務方法。

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

我該如何改變這個做一個帖子?同樣在服務器上,我需要更改哪些內容?我目前正在接受一串XML作爲輸入。

非常感謝任何提示, 〜CK在聖地亞哥

回答

3

什麼:

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

甜。謝謝您的幫助! – Hcabnettek 2010-01-20 21:18:30

相關問題