2011-08-28 75 views
3

我有一個帶有3個字符串參數的WCF服務。使用jQuery和JSON調用此方法確實可以達到我的方法,但只有一個參數包含一個值 - 其他參數即使傳遞,也會收到null。任何想法爲什麼?jQuery使用JSON WCF

[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest)] 
    public string Save(string site, string title, string contentType) 
    { 
     // method... 
    } 

JS:

    $.ajax(
         { 
         type: "POST", 
         url: "/Service.svc/Save", 
         dataType: "json", 
         data: "{\"title\": \"title...\", \"site\": \"site...\", \"contentType\": \"contentType...\"}", 
         contentType: "application/json; charset=utf-8", 
         success: function(data) { 
         }, 
         error: function() { 
          alert("Sorry, an error has occured"); 
         } 
         } 
+0

你有沒有嘗試糾正參數的順序?您的服務方法接受訂單網站,標題和內容類型中的參數,但是您要以訂單標題,網站和內容類型發送它。不知道這是否會解決它,但它是值得一試。 –

+0

是的,對不起,我應該提到這一點。 params的順序不會改變結果。標題是其價值被接收的唯一參數。 – johnnyboy

+0

當我嘗試它時有效。我在VS2010中創建了一個WCF服務應用程序,我的JQuery版本是1.5.1。這裏有一個預感:重命名網站和contentType名稱。 – LostInComputer

回答

0

虛驚一場。

這兩個缺失參數的參數名稱在ServiceContract中與服務不同。我使用的是服務中的參數名稱,而不是ServiceContract中的參數名稱。笨。

感謝您的回覆傢伙。

+0

親愛的@johnyboy,請你提一下正確的jquery吧! – Vikrant