2013-10-03 87 views
1

我正在對返回部分視圖的控制器中的操作進行ajax調用。部分視圖是一個將被追加的行,或者它將替換項目網格中的現有行(取決於我是否添加或編輯行項目)。 在從谷歌Chrome網絡選項卡我得到HTML的正確的字符串,如:Ajax調用後的HTML響應被剝離了一些標籤

<tr class="" data-id="1c4daceb-2afb-413b-8adc-d20b4d8969e5"> 
    <td><img style="width:100px; height:100px;" src="http://localhost/Project/6b39488b-db2d-495e-957c-ede0eb462292.png" data-id="1c4daceb-2afb-413b-8adc-d20b4d8969e5"/></td> 
    <td>bvcbvX</td> 
    <td>6b39488b-db2d-495e-957c-ede0eb462292.png</td> 
</tr> 

,但在我的Ajax成功功能:

function onDataEdited(data, status, xmlhttp) { 
    alert(data); 
} 

我得到的行剝離和標籤,這樣:

<img style="width:100px; height:100px;" src="http://localhost/Project/6b39488b-db2d-495e-957c-ede0eb462292.png" data-id="1c4daceb-2afb-413b-8adc-d20b4d8969e5"/> 
    bvcbvX 
    6b39488b-db2d-495e-957c-ede0eb462292.png 

所以,從jQuery的東西剝離我的標籤只留下內容。

的行動呼籲是通過Ajax這樣做:

function MakeAjaxCall() { 
    $('#myForm').ajaxForm({ 
     iframe: true, ---> here is needed since I am adding a file upload from my form 
     beforeSubmit: function() { 
      if (!$('#myForm').valid()) 
       //process validation 

      return $('#myForm').valid(); 
     }, 
     success: function (data, status, xmlhttp) { 
      if (xmlhttp.getResponseHeader('ErrorHeader') == null || 
       xmlhttp.getResponseHeader('ErrorHeader') == "") { 

       //process success 
      } 
      else { 
       //process error 
      } 
     }, 
     error: function (xhr, textStatus, errorThrown) { 
      alert(xhr); 
     } 
    }); 
} 

誰能告訴我怎麼把我的響應數據不被剝奪的和標籤?

我使用這個jquery插件(malsup.com/jquery/form)使表單「ajaxified」,以便通過Ajax提交包含文件的表單。 這個插件的'ajaxForm'方法只有'xml','json','script'和null - (我正在使用)作爲dataType,響應是stil剝離了'xml'的標籤。如果我設置了'json'或'script',它會拋出一個客戶端錯誤,指明它無法解析響應(正在試圖將它解析爲腳本,當它是html)時。

+2

嘗試使用'$ .post()'而不是'.ajaxForm' –

+0

我需要使用ajaxForm,因爲我也在提交表單時加載圖像,我需要將iFrame設置爲true。無論如何,我在網絡中收到的響應(在Chrome中)正是我需要的,但在此之後,它被刪除了和​​,我不明白爲什麼。 –

回答

0

可能是數據類型的問題:http://malsup.com/jquery/form/#options-object

+0

我已經嘗試過'json'和'script'for dataType,它會拋出客戶端錯誤。對於'xml'它可以解析響應(沒有錯誤被拋出)。如果我沒有爲dataType指定任何東西(默認行爲),我會得到精簡的響應。 –

+0

對於'xml'我可以解析響應,但仍然沒有HTML標籤。 –

+0

jQuery在ajax調用中也有數據類型的文本和html。嘗試「HTML」,看看是否有用? –