インデックスページからコントローラにSVG文字列を送信しようとしています。しかし、それはヌル値を得ています。jQuery AjaxからMVCコントローラへのデータの送信
var str = "<svg height=\"350\" version=\"1.1\" ... svg properties ..."
console.log(str);
$.ajax({
type: "POST",
//contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
//dataType: "text",
url: window.location.origin + '/NavigationExport/GetSvgData',
//data: '{"value":"' + str + '"}',
data: {value :str},
}).done(function (data) {
debugger
});
ここは私のコントローラコードです。
[HttpPost]
public void GetSvgData(string value)
{
return;
}
しかし、このコードでは500の内部サーバーエラーが発生しています。
潜在的に危険なRequest.Form値がクライアントから検出されました(
value="<svg height="350" ve..."
)。概要ASP.NETは要求の中で、HTMLマークアップまたはスクリプトを含む可能性があるため、潜在的に危険なデータを検出しました。 データは、クロスサイトスクリプティング攻撃など、 アプリケーションのセキュリティを侵害しようとしている可能性があります。このタイプの 入力がアプリケーションで適切な場合は、 ウェブページにコードを含めて明示的に許可することができます。詳細については、 http://go.microsoft.com/fwlink/?LinkID=212874を参照してください。
私は
data: '{"value":"' + str + '"}'
を使用している場合、それはMVCはあなたが要求してHTMLを送信しようとしていると考えて、いずれかを停止することを防ぐために問題がある
[AllowHtml]は[プロパティ]宣言でのみ有効です。ここでエラーを出します。 – Anurag
ああ、私の悪い。回答が更新されました –
ありがとうございます。出来た。 :D – Anurag