1

私のプロジェクトは (既定のページから) 検索を実装HTMLし、検索ページ (ASPXページ) にリダイレクトします。クエリ文字列を使用して検索値を渡します。potentially dangerous Request.QueryString value言語が英語以外 (タイ語、キリル語など) に設定されていると、サーバー エラーが発生します。

クライアント側からこれを処理する方法はありますか? 現在、ページ自体からこれを処理する方法を見つけることができません ( Page_LoadPage_PreInitトリガーされていません)。

リダイレクトに使用したコードは次のとおりです。

function Search()  {
    var searchString = document.getElementById('txtSearch').value;
    location.href = "/Search.aspx?search=" + searchString;
}
4

2 に答える 2

2

validateRequest="false".NetページまたはWeb.configファイルを追加します

また

次を追加して、URL変数をエンコードできますencodeURIComponent

function Search()  {
    var searchString = document.getElementById('txtSearch').value;
    location.href = "/Search.aspx?search=" + encodeURIComponent(searchString);
}
于 2011-07-18T06:32:14.933 に答える
2

データがおおよそコードのように見える場合は、この検証を無効にする必要があるかもしれません。ただし、特に XSS や SQL インジェクション攻撃を回避するなど、コードの取り扱いについて十分に確認する必要があります。validateRequest=falseaspx で設定して、ページごとに無効にできるはずです。

<%@ Page validateRequest="false" ...

または、どこでもこれが必要な場合は、web.config でグローバルに。

于 2011-07-18T06:24:48.113 に答える