2016-04-15 88 views
-1

我有這樣的Ajax調用發送之前的Ajax編碼參數?

$.cordys.ajax({ 
     url : "xxx" 
     method: "xxx", 
     namespace: "xxx", 
     parameters: { 
      Lines : { 
       "@xmlns" : "http://www.exemple.com", 
       Line : TFLines 
      } 
     }, 
     success: function(data) { 
      console.log(data); 
     } 

    }).fail(function(error) { 
     alert(error); 
    }); 

我想送的對象行是行的集合,對象TFLine是一個數組,看起來像這樣:

[{ 
    @xmlns: "http://exemple.com", 
    Code: "DENOLEGAL", 
    Comments: "", 
    Content: "<![CDATA[<strong>test</strong>]]>", 
    DisplayedLanguageId: "1", 
    DisplayedLanguageName: "FR", 
    IsMandatory: "1", 
    Label: "Dénomination légale de vente" 
}, {...} 
] 

我的問題是與字段內容我有特殊字符。 這個數據已經以JSON格式發送,但在目標應用程序也將轉換成XML(這就是爲什麼我需要附上我的CDATA標籤數據)

中庸之道之前AJAX調用我的數據集看起來就像這樣但是,當我看着控制檯請求負載,現場內容的編碼這樣的:

&lt;![CDATA[&lt;strong&gt;test&lt;/strong&gt;]]&gt; 

我認爲Ajax庫做了,其實不是,我把斷點到處圖書館使用encodeURIComponent方法(),任何人停止

你知道爲什麼會發生這種情況?

回答

0

有效負載是HTML編碼的(不是URL編碼)。所以,你可以看看代碼的某些部分是HTML的編碼有效載荷數據

有效載荷應該被編碼爲

%3C!%5BCDATA%5B%3Cstrong%5Btest%3C%2Fstrong%5B%5D%5D%5B