2016-04-15 6 views
-1

Ich habe diese Ajax-AufrufAjax Codierungsparameter vor dem Senden?

$.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); 
    }); 

Ich mag würde ein Objekt Linien senden, die eine Sammlung von Line ist, ist das Objekt TFLine ein Array und sieht wie folgt aus:

[{ 
    @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" 
}, {...} 
] 

Mein Problem ist, mit dem Feld Inhalt, wo ich besondere Zeichen habe. Diese Daten müssen im Json-Format gesendet werden, aber in der Zielanwendung wird es in XML konvertiert (deshalb muss ich meine Daten mit CDATA-Tags versehen)

Just vor dem Ajax-Aufruf sieht mein Datensatz genau so aus aber wenn ich die Konsole schauen Sie in die Anfrage Nutzlast hat das Feld Inhalt wurde so codiert:

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

dachte ich, die ajax-Bibliothek tat, eigentlich nicht, ich Haltepunkt überall die Bibliothek encodeURIComponent put(), anyone gestoppt

Haben Sie eine Idee, warum das passiert?

Antwort

0

Die Payload war HTML-codiert (nicht URL-codiert). So könnte man herausfinden, ob ein Teil des Codes ist HTML-Verschlüsselung der Nutzdaten

Die Nutzlast sollte als

%3C!%5BCDATA%5B%3Cstrong%5Btest%3C%2Fstrong%5B%5D%5D%5B 
codiert werden
Verwandte Themen