我有这个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);
});
我想发送一个对象Line,它是Line的集合,对象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调用之前的Juste我的数据集看起来完全像这样,但是当我查看控制台的请求有效负载时,字段Content已被编码为:
<![CDATA[<strong>test</strong>]]>
我认为ajax库做到了,实际上没有,我把断点放在库的每个地方使用encodeURIComponent(),任何人都停止了
你知道为什么会这样吗?
答案 0 :(得分:0)
The payload was HTML encoded (not URL encoded). So, you could find out if some part of the code is Html-encoding the payload data
The payload should be encoded as
%3C!%5BCDATA%5B%3Cstrong%5Btest%3C%2Fstrong%5B%5D%5D%5B