我是WCF新手,請耐心等待。已啓用Ajax WCF:未收到數據
我有一個簡單的WCF服務接受這樣一個簡單的JSON數據{name:「Joe Boxer」}。應該只是回顯傳遞的名稱。
Imports System.ServiceModel
Imports System.ServiceModel.Activation
Imports System.ServiceModel.Web
Imports System.Runtime.Serialization
<ServiceContract(Namespace:="")>
<AspNetCompatibilityRequirements(RequirementsMode:=AspNetCompatibilityRequirementsMode.Allowed)>
Public Class Service
<Serializable()> _
<DataContract(Name:="Person")> _
Public Class Person
<DataMember(IsRequired:=True, Name:="Name")> _
Public Name As String
End Class
<OperationContract()>
<WebInvoke(requestformat:=WebMessageFormat.Json)>
Public Function GetName(ByVal p As Person) As String
Return "Your name is " & p.Name
End Function
End Class
所以,我用的JQuery AJAX和JSON2做POST的WCF。我可以看到螢火蟲的JSON數據通過。但是,GetName()方法始終永遠不會看到傳遞的數據 - 使代碼失敗,因爲p爲null。
看起來這個服務看不到任何數據通過。
我錯過了什麼?預先感謝您的幫助。
感謝Pradeep的迴應。
我實際上是發送一個複雜的類型。對不起,如果沒有說清楚。以下是我發送它的方式(簡化)。
$.ajax({
url: "http://localhost/wcftest/service.svc/GetName",
data: JSON.stringify({name:"Joe Boxer"}),
type: "POST",
processData: false,
contentType: "application/json; charset=UTF-8",
timeout: 10000,
dataType: "json",
success: function(res) { alert(res); },
error: function() { alert("error"); return;}
});
我可以在firebug中看到{「name」:「Joe Boxer」}正在發送。但功能仍然沒有看到它。我可能忽略了一些非常小的東西,但我不知道是什麼。我一整天都在玩這個遊戲。