JavaScript関数内でRequest.QueryStringを呼び出す方法と、私はasp.netとC#を使用しています
var str=<%=Request.quesryString("val")%>
しかし、それは私にエラーを与えています
JavaScript関数内でRequest.QueryStringを呼び出す方法と、私はasp.netとC#を使用しています
var str=<%=Request.quesryString("val")%>
しかし、それは私にエラーを与えています
この JavaScript コードが Web フォームにインラインである場合、正しい方法は次のように使用することjavascript serializer
です。
<script type="text/javascript">
var str = <%= new JavaScriptSerializer().Serialize(Request.QueryString["val"]) %>;
alert(str);
</script>
次のことは絶対に行わないでください。完全に安全ではなく、サイトは XSS インジェクション攻撃に対して脆弱です。
<script type="text/javascript">
var str = '<%= Request.QueryString["val"] %>';
alert(str);
</script>
ASP NET の要求でセキュリティのテーマを活用する...
JavaScriptStringEncode()またはAntiXSS ライブラリを使用して、Web サイトで XSS を防止することもできます。
簡単な答え: できません。ブロック内のコード<%= %>
はサーバー側で評価され、JavaScript コードはクライアント側で評価されます。
長い答え: インライン C# コードを使用して JavaScript コードを生成できます。ただし、これは JavaScipt 関数から C# コードを呼び出すことと同じではありません。もちろん、これは .js ファイルではなく .aspx / .cshtml などのファイルでのみ実行できます。これらはコンテンツとしてのみ処理され、ASP.NET によって解析されないためです。
[編集]とにかくJSを介してクエリ文字列を取得できるため、とにかく気にする必要はありません。 JavaScriptでクエリ文字列値を取得するにはどうすればよいですか? を参照してください。
[EDIT2]: もちろん、JavaScriptSerializer に関する他の回答は、安全性に関して絶対に正しいです。Razor ビュー エンジンを使用すると、既定で文字列がエスケープされるため、作業がはるかに簡単かつ安全になります。しかし、私が言ったように、具体的なケースでは、どちらの方法でも気にする必要はありません.