jQuery ajaxを介してユーザーからサーバーに送信される入力をテストすると、「潜在的に危険なRequest.Form値がクライアントから検出されました」というエラーが発生します。"<s"c'o<>"
ユーザー名として入力exに意図的に一重引用符、二重引用符、html文字を入れた場合にのみ表示され ます。それでも、ユーザーが入力しようとする不正な入力を適切にエンコードおよびデコードできるようにしたいと思います。
これがクライアント側のjqueryです
var email = encodeURIComponent($('#loginEmail').val());
var password = encodeURIComponent($('#loginPassword').val());
$.ajax({
async: false,
url: 'Account/CheckLogin',
dataType: 'JSON',
contentType: 'application/json',
data: {
email: email,
password: password
},
success: function (resp) {
alert(resp.valid);
if (resp.valid == "false") {
isValid = false;
$('.errorspan').show();
}
}
});
最初の行のブレークポイントに到達する前にエラーがスローされるため、コントローラーコードは実際には重要ではありません。コードを処理する機会を得る前に、Asp.netがこれをajaxとして渡そうとしているのを見つけたようです。私の質問は-なぜこれがencodeUriComponent()で起こっているのですか??