2016-04-15 90 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