如何解决发送多个参数 XMLHttpRequest 和 WCF
我正在尝试向 WCF 服务发送多个参数。服务器端我记录传入的数据。其中记录了错误 1 和 2,但没有记录错误 3 和 4。我尝试调试以单步执行,但客户端 javascript 调用未触发我的服务器端代码,因此我可以单步执行。
我错过了什么?
从 Chrome 开发者控制台请求负载:
<script type="text/javascript">
$(document).ready(function () {
var xhr = new XMLHttpRequest();
xhr.open('POST','https://www.example.com/api/multipleparams');
xhr.setRequestHeader('Content-Type','application/json');
xhr.send(JSON.stringify({ str: { "idtoken": "e46541","lang": "dfgfdgfdg" } }));
});
</script>
<Runtime.Serialization.DataContract>
Public Class oAuthUserSigninDetails
Private _idtoken As String
<Runtime.Serialization.DataMember>
Public Property idtoken As String
Get
Return _idtoken
End Get
Set(ByVal value As String)
_idtoken = value
End Set
End Property
Private _lang As String
<Runtime.Serialization.DataMember>
Public Property lang As String
Get
Return _lang
End Get
Set(ByVal value As String)
_lang = value
End Set
End Property
End Class
<OperationContract()>
<Web.WebInvoke(Method:="POST",ResponseFormat:=Web.Webmessageformat.Json,BodyStyle:=Web.WebMessageBodyStyle.Bare,UriTemplate:="multipleparams")>
Function multipleparams(ByVal str As oAuthUserSigninDetails) As Stream
Public Function 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)
End Function
解决方法
我认为 3 和 4 没有被记录,因为它们有空值,而 ToString 会导致空异常,而且由于它们都是字符串,你根本不需要使用 ToString。
当您在 OperationContract 中接受一个类作为参数时,我认为您不需要在发布 JSON 请求时指定参数名称。
xhr.send(JSON.stringify({ "idtoken": "e46541","lang": "dfgfdgfdg" }));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。