Я создал одно обслуживание WCF restful.Как получить Xml как строку в службе wcf и отправить с помощью 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.
@Mozts дал вам правильный ответ. Изменить код: data: '{"xmlString": "' + bhReq + '"}' к данным: xmlString. И добавьте [xml header] (http://stackoverflow.com/questions/7007427/does-a-valid-xml-file-require-an-xml-declaration), например Xml version = "1.0"?> И удалите CDATA. тег. – Roberto