2013-06-23 37 views
3

如何发送xml参数来调用WCF方法?我的客户端代码是在AJAX,JSON使用jQuery.I想传递xml值作为参数。如何传递xml值? 我的XML值如何将xml参数发送给WCF?

<value><Root>mydata</Root></value> 

我的客户端代码 -

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
    <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.5.1.min.js"></script> 
     <script type="text/javascript" > 

      jQuery.support.cors = true; 

      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>"; 

      $(document).ready(function() { 
       $("#btnWCFBasicHttp").click(function() { 
        alert("hi"); 
        $.ajax({ 
         type: "POST", 
         url: "http://localhost:8130/MyService.svc/bh/", 
         data: bhRequest, 
         timeout: 10000, 
         contentType: "text/xml", 
         dataType: "xml", 
         beforeSend: function (xhr) { 
          xhr.setRequestHeader("SOAPAction", "http://tempuri.org/IMyService/GetSMC"); 

         }, 
         success: function (data) { 
          alert("success"); 
          $(data).find("GetSMCResponse").each(function() { 

           document.getElementById('Label2').innerHTML = $(this).find("GetSMCResult").text(); 
                 }); 
         }, 
         error: function (xhr, status, error) { 
          alert(error); 

         } 
        }); 
       }); 
      }); 
</script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
     <div> 
     <input id="btnWCFREST" type="button" value="Call WCF using JQuery" /> 
     <label ID="Label1" runat="server" Text="Label"></label> 

     </div> 
    </form> 
    </body> 
</html> 

回答

1

我不知道这是否会工作,但要尽量把该XML中
<![CDATA[]]>

也有一些黑客用字符串标记,但我不知道这是否是必要的(也许只有CDATA标签就足够了):
WCF RESTFul service - Pass XML as string to service

+0

@沃伊切赫 - 不工作:( – ShutterSoul

+0

会发生什么?没有XML,它的作品?什么是该参数的类型? –

+0

我传递字符串作为parameter.which将接受XML字符串是“ OSLWATS”,它会返回字符串值。我的意思是它将返回OSLWATS。 – ShutterSoul

0

你会被加密的base64并通过它的服务器客户端上可以解密