我有一个ajax post方法,我使用stringify传递json数据,并使用ajax调用将其传递给c#服务器端。
数据由几行html表组成。第二行有'&'在输入中。所以任何数据和&没有传递到服务器端。只有'&'之前的数据传递
例如。
[{"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"}]
正如您在上面所看到的,它不是按原样传递整个数据,而是传递下面显示的截断数据。我猜它必须归因于&在数据中。有什么建议吗?
[{"FName":"Shesh","LName":"Chari","Department":"Automation"},
{"FName":"Uma","LName":"uri","Department":"Invest
这是ajax发送的JSON
var submitData = "=" + JSON.stringify($scope.gridOptions.rowData);
$.ajax({
type: 'POST',
url: 'URL',
data: submitData
});
答案 0 :(得分:1)
&安培;在html中用作转义序列以显示在html中保留的字符(即<
变为<
而>
变为>
)。因此,&amp;是保留自己。您需要将所有&
转换为&
答案 1 :(得分:1)
首先清理您的Json数据:
var sanitiseString = $scope.gridOptions.rowData.replace("&", "&")
var submitData = "=" + JSON.stringify(sanitiseString);
$.ajax({
type: 'POST',
url: 'URL',
data: submitData
});
答案 2 :(得分:0)
我会在将&符号发送到服务器之前对其进行编码。你可以通过在可能包含&符号的列上调用一个简单的正则表达式,或者通过在你整理的字符串上调用它来实现这一点。
var searchStr = "&";
var replaceStr = "%26";
var re = new RegExp(searchStr, "g");
这是一篇非常好的帖子,解释了发生了什么,并发布了解决方案。