2016-03-31 5 views
1

zu übergeben Ich habe eine AJAX-Post-Methode, wo ich Json-Daten übergeben mit stringify und übergeben sie an C# -Server-Seite mit Ajax-Aufruf.Nicht möglich, ganze HTML-Daten bei C# aufgrund & Symbol in den Daten

Die Daten bestehen aus mehreren Zeilen der HTML-Tabelle. Die zweite Reihe hat '&' im Eingang. Daher werden alle Daten nach & nicht an die Serverseite übergeben. nur die Daten vor '&' werden

für z.B.

[{"FName":"Shesh","LName":"Chari","Department":"Automation"}, 
{"FName":"Uma","LName":"uri","Department":"Invest & Ops"}, 
{"FName":"Book","LName":"Mac","Department":"Ops"}, 
{"FName":"Hard","LName":"Core","Department":"Invest"}] 

Wie Sie oben sehen, anstatt gesamtes Datenzugeben, wie es ist, ist es diese abgeschnittenen Daten unten vorbei. Ich denke, es muss aufgrund & in den Daten sein. Irgendwelche Beratung pls?

[{"FName":"Shesh","LName":"Chari","Department":"Automation"}, 
{"FName":"Uma","LName":"uri","Department":"Invest 

Hier wird die JSON durch ajax gesendet

var submitData = "=" + JSON.stringify($scope.gridOptions.rowData); 

    $.ajax({ 
     type: 'POST', 
     url: 'URL', 
     data: submitData 
    }); 
+0

was macht der gebuchten Daten wie in Entwickler-Tools oder Fiedler aussieht? – Pedro

Antwort

1

Sanitize Ihre Json Daten zuerst:

var sanitiseString = $scope.gridOptions.rowData.replace("&", "&") 
var submitData = "=" + JSON.stringify(sanitiseString); 

$.ajax({ 
    type: 'POST', 
    url: 'URL', 
    data: submitData 
}); 
1

& verwendet wird in HTML als eine Escape-Sequenz zum Anzeigen der Zeichen, die in HTML reserviert sind (d.h. < wird &lt; und > wird &gt;). Aus diesem Grund ist & reserviert. Sie müssen Ihre JSON-String sterilisieren, indem alle &-&amp;

Siehe Umwandlung Html entities

+0

Danke. Lesen Sie einfach über HTML-Entitäten und das ist was ich brauchte. – Patrick

0

Ich würde die kaufmännische Und-Zeichen kodieren, bevor sie an den Server senden. Sie können dies tun, indem Sie eine einfache Regex für die Spalten aufrufen, die ein kaufmännisches Und-Zeichen enthalten könnten, oder indem Sie sie für die gesamte von Ihnen angegebene Zeichenfolge aufrufen.

var searchStr = "&"; 
var replaceStr = "%26"; 
var re = new RegExp(searchStr, "g"); 

Hier ist ein wirklich guter Beitrag zu erklären, was passiert und hat eine Lösung geschrieben.

Stringify with Ampersand

Verwandte Themen