我正試圖向一個WCF服務發送多個引數。服務器端我記錄了傳入的資料。其中錯誤1和2被記錄了,但3和4沒有被記錄。我試著進行除錯,以便能夠通過,但客戶端的javascript呼叫沒有觸發我的服務器端代碼,所以我無法通過。
我錯過了什么呢?
來自 Chrome 開發人員控制臺的請求有效載荷:
?
uj5u.com熱心網友回復: 我認為3和4沒有被記錄,因為它們有空值,而ToString會導致空值例外,由于它們都是字串,你根本不需要使用ToString。
當你在OperationContract中接受一個類作為引數時,我認為你不需要在發布JSON請求時指定引數名稱。
標籤:<script type="text/javascript"/span>>
$(document).ready(function () {
var xhr = new XMLHttpRequest()。
xhr.open('POST', 'https://www.example.com/api/multipleparams') 。
xhr.setRequestHeader('Content-Type'/span>, 'application/json'/span>)。
xhr.send(JSON.stringify({ str: { "idtoken": "e46541"/span>, "lang"/span>: "dfffdgfdg" }) }));
});
</script>
<Runtime.Serialization.DataContract>
Public Class oAuthUserSigninDetails
Private _idtoken As StringString
獲取
回傳_idtoken
結束獲取
Set(ByVal value As String)
_idtoken = value
結束 Set (ByVal value As String)
結束屬性
Private _lang As String
<Runtime.Serialization.DataMember>
公共屬性 lang As StringSet(ByVal value As String)
_lang = value
結束 設定。
結束屬性
完畢類
<OperationContract()>
<Web.WebInvoke(Method:="POST", ResponseFormat:=Web.WebMessageFormat.Json, BodyStyle:=Web.WebMessageBodyStyle.Bare, UriTemplate:="multipleparams") >
Function multipleparams(ByVal str As oAuthUserSigninDetails) As Stream
公共函式 multipleparams(ByVal str As oAuthUserSigninDetails) As Stream Implements Iapi.multipleparams
LogError("1 multipleparams")
LogError("2 str", str.ToString)
LogError("3 idtoken", str.idtoken.ToString)
LogError("4 lang", str.lang.ToString)
結束函式。
xhr.send(JSON.stringify({ "idtoken"/span>: "e46541", "lang"。"dfffdgfdg" })。

