2016-03-09 34 views
1

我已經創建了一個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服務。

+0

@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

回答

1

方式的用戶,下面有兩種選項之一,改變WCF的消息JSON或設置的XML肥皂格式正確

對於方案一讀 http://www.codeproject.com/Articles/105273/Create-RESTful-WCF-Service-API-Step-By-Step-Guide

對於方案二 你可以閱讀https://leonidius2010.wordpress.com/2011/05/16/98/

對於這個選項,我首先看到你的示例xml的一些問題,你正在包裝完整的xml格式不正確的cdata。

我還看到xml文檔類型在您要發送的有效內容中缺失。

爲了獲得正確的JavaScript格式,我會在Visual Studio中使用wcf測試客戶端來調用您的端點,然後複製並傳遞正在發送到JavaScript文件的有效內容。

+0

已經投票確定了多個問題並提出了兩個解決方案。 – Roberto

相關問題