2016-03-31 5 views
1

私はjsonデータをstringifyを使用して渡し、ajax呼び出しを使用してC#サーバー側に渡します。データ内の&記号のためにC#でhtmlデータ全体を渡すことができません

データは、htmlテーブルの複数の行で構成されています。 2行目は入力に '&'があります。したがって、&以降のデータはサーバー側に渡されません。 「&」より前のデータのみが渡されます。

[{"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

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

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

デベロッパーツールやフィドラーの投稿データはどうなりますか? – Pedro

答えて

1

を参照してください

&に変換することにより、あなたのJSON文字列を滅菌する必要があります。まず、あなたのJSONデータをサニタイズ:

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

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

&によって送信されたJSON(すなわち<&lt;なり>&gt;なる)HTMLで予約されている文字を表示するためにエスケープシーケンスとしてHTMLに使用されます。このため、&自体が予約されています。あなたはすべての&Html entities

+0

ありがとうございます。ちょうどhtmlエンティティについて読んで、これは私が必要とするワットです。 – Patrick

0

サーバーに送信する前に、私はアンパサンドをエンコードします。これは、アンパサンドを含む可能性のある列の単純な正規表現を呼び出すか、文字列化した文字列全体を呼び出すことによって実行できます。

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

ここには何が起こっているのかを説明する本当に良い投稿が掲載されています。

Stringify with Ampersand

関連する問題