2016-04-15 10 views
-1

I私はラインのコレクションであるオブジェクトの行を送信したいと思い、この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 Formatで送信する必要がありますが、ターゲットアプリケーションではXMLに変換されます(このため、CDATAタグでデータを囲む必要があります)

私のデータセットは、私は要求ペイロードコンソールに見えるときには、フィールドの内容はそのようにエンコードされています:

&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 
としてエンコードする必要があります見つけることができ