我已經創建了一個WCF寧靜服務。如何在wcf服務中獲取Xml作爲字符串並使用javascript發送?
public string Demo(String xmlString)
{
//do stuff
}
[OperationContract]
[WebInvoke(ResponseFormat = WebMessageFormat.Xml, RequestFormat = WebMessageFormat.Xml, Method = "Post", UriTemplate = "Demo",
BodyStyle = WebMessageBodyStyle.Wrapped)]
string Demo(String xmlString);
我通過
$(document).ready(function() {
$("#btn").click(function() {
var bhRequest = "<s:Envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\">" +
"<s:Body>" +
"<GetSMC xmlns=\"http://tempuri.org/\">" +
"<value><Root>MyValue</Root></value>" +
"</GetSMC>" +
"</s:Body>" +
"</s:Envelope>";
var bhReq="<![CDATA[" + bhRequest + "]]>";
alert(bhReq);
$.ajax({
url: 'http://localhost:15536/Plugins/MyPlugin/RemoteService/WebService.svc/Demo',
type: 'POST',
data: '{"xmlString":"'+ bhReq +'"}',
contentType: "text/xml",
dataType: "xml",
success: function (data) {
alert(Successfull);
},
error: function (data) {
alert('Error Occurred');
}
});
});
});
呼叫發信不會服務,並給出了
NetworkError: 405 Method Not Allowed
XML Parsing Error: not well-formed Location: moz-nullprincipal:{70ef8883-a52b-4e70-a1ca-bdf5c611c23c} Line Number 1, Column 1:
{"xmlString":"MyValue</Root></value></GetSMC></s:Body></s:Envelope>]]>"}
的錯誤,我也通過一些文字,是通過我的服務,但XML字符串沒有通過。
我也已經完成了使用將我的服務請求和響應格式設置爲json,並使用數據類型JSON從我的腳本傳遞數據,它也不起作用。
請給任何解決方案如何我可以將xml作爲字符串值從javascript傳遞給我的wcf rest服務。
@Mozts給了你正確的答案。將代碼:data:'{「xmlString」:「'+ bhReq +'」}'更改爲data:xmlString。並添加一個[xml頭文件](http://stackoverflow.com/questions/7007427/does-a-valid-xml-file-require-an-xml-declaration),如<?xml version =「1.0」?>和刪除CDATA。標籤。 – Roberto