2012-09-28 38 views
2

我想提出一個AJAX調用返回HTML作爲本一串代碼服務..返回的HTML XMLHttpRequest對象

var xhReq = new XMLHttpRequest(); 
xhReq.open("POST", "MobileClientService.svc/REST/TestHtmlSend", false); 
xhReq.send(null); 
xhReq.responseType = "text/html"; 
var serverResponse = xhReq.responseText; 
alert(serverResponse); // Shows "15" 

服務正確創建HTML ..

<div data-bb-type="item" data-bb-img="Images/imagesBBUI/icons/icon11.png" data-bb-title="Title From Server"> 

</div> 

問題是我的代碼中的「serverResponse」返回這個..

<div data-bb-type=\"item\" data-bb-img=\"Images/imagesBBUI/icons/icon11.png\" data-bb-title=\"Title From Server\"> 
    \u000d\u000a\u000d\u000a 
<\/div> 

這裏是C#代碼用於創建e html ..

public string TestHtmlSend() 
     { 
      string moomoo = String.Empty; 

      // Initialize StringWriter instance. 
      StringWriter stringWriter = new StringWriter(); 

      // Put HtmlTextWriter in using block because it needs to call Dispose. 
      using (HtmlTextWriter writer = new HtmlTextWriter(stringWriter)) 
      { 
       //start collapse div 
       writer.AddAttribute("data-bb-type", "item"); 
       writer.AddAttribute("data-bb-img", "Images/imagesBBUI/icons/icon11.png"); 
       writer.AddAttribute("data-bb-title", "Title From Server"); 
       writer.RenderBeginTag(HtmlTextWriterTag.Div); 
       //writer.Write("Some Whatever Description"); 
       writer.RenderEndTag(); 

      } 

      moomoo = stringWriter.ToString(); 

如何更改我的代碼以返回html,因爲它沒有所有額外的「\」?

+0

你可以使用jquery的'$ .ajax()'嗎? –

+2

@TravisJ爲什麼大家總是默認使用jQuery。也許他試圖學習JavaScript在後臺做什麼或不能使用庫? – locrizak

+0

@locrizak - 因爲它是標準化的並且使用純XMLHttpRequest可能會在某些瀏覽器中遇到問題。 –

回答

1

我遇到過這樣奇怪的問題,它通常總是歸結爲中間件。

看起來像服務器端的可變插值問題。

什麼是您的中間件語言和/或框架?

確保您打印到輸出流乾淨利索:僅使用一個變量(在這裏你可以很容易地看到報價插值)

  • 沒有逃脫你的輸出,無需
    +0

    btw中檢查標題,那裏的unicode字符可能表示您正在通過html實體翻譯解析您的字符串...也許html_entities_decode是您的問題的根源? –

    +0

    我更新了用於創建html的C#代碼的問題 –