Javascript 由于&;的原因,无法在C#上传递整个html数据;数据中的符号
我有一个ajaxpost方法,我使用stringify传递json数据,并使用ajax调用将其传递给c#server端 数据由html表格的几行组成。第二行的输入中有“&”。因此,&之后的任何数据都不会传递到服务器端。仅传递“&”之前的数据 例如Javascript 由于&;的原因,无法在C#上传递整个html数据;数据中的符号,javascript,c#,json,ajax,Javascript,C#,Json,Ajax,我有一个ajaxpost方法,我使用stringify传递json数据,并使用ajax调用将其传递给c#server端 数据由html表格的几行组成。第二行的输入中有“&”。因此,&之后的任何数据都不会传递到服务器端。仅传递“&”之前的数据 例如 [{"FName":"Shesh","LName":"Chari","Department":"Automation"}, {"FName":"Uma","LName":"uri","Department":"Invest & Ops"},
[{"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
});
&在html中用作转义序列,以显示html中保留的字符(即,
变为
)。因此,&本身是保留的。您需要通过将所有&
转换为&;来消毒JSON字符串代码>
请参阅首先清理Json数据:
var sanitiseString = $scope.gridOptions.rowData.replace("&", "&")
var submitData = "=" + JSON.stringify(sanitiseString);
$.ajax({
type: 'POST',
url: 'URL',
data: submitData
});
我会在你把这些符号发送到服务器之前对它们进行编码。您可以通过在可能包含符号的列上调用简单的正则表达式,或者在字符串化的整个字符串上调用它来实现这一点
var searchStr = "&";
var replaceStr = "%26";
var re = new RegExp(searchStr, "g");
这是一篇非常好的帖子,解释了正在发生的事情,并发布了一个解决方案
在开发者工具或fiddler中发布的数据是什么样子的?谢谢。只要阅读html实体,这就是我需要的。