我的项目实现搜索(来自默认HTML
页面)并将重定向到搜索页面(ASPX
页面),我正在使用查询字符串来传递搜索值。当语言设置为非英语(例如泰语,西里尔语)时,我收到potentially dangerous Request.QueryString value
服务器错误。
有没有办法从客户端处理这个问题?目前我找不到从页面本身处理此问题的方法(Page_Load
,Page_PreInit
未触发)。
以下是我用于重定向的代码:
function Search() {
var searchString = document.getElementById('txtSearch').value;
location.href = "/Search.aspx?search=" + searchString;
}
答案 0 :(得分:2)
如果您的数据看起来大致与代码相似,则可能必须禁用此验证;但是你需要 真的 确保你的代码处理,特别是避免XSS和SQL注入攻击。您应该能够在aspx validateRequest=false
中设置为每页禁用:
<%@ Page validateRequest="false" ...
或web.config中的全局,如果你在任何地方都需要它。
答案 1 :(得分:2)
将validateRequest="false"
添加到.Net页面或Web.config文件
OR
您可以对您的网址变量进行编码,添加encodeURIComponent
:
function Search() {
var searchString = document.getElementById('txtSearch').value;
location.href = "/Search.aspx?search=" + encodeURIComponent(searchString);
}