【问题标题】:ASP.NET Javascript Error on Input输入时出现 ASP.NET Javascript 错误
【发布时间】:2011-04-12 06:50:08
【问题描述】:

我的 ASP.NET 页面有一个 <asp:TextBox />,其文本输入通过 HttpUtility.HtmlEncode(); 编码

该页面还包含<asp:RequiredFieldValidator />和<asp:CustomValidator />等验证器以及几个AJAX工具包<toolkit:ValidatorCalloutExtender />

如果用户在文本框中输入 </ 作为文本,则 Javascript 错误

A potentially dangerous Request.Form value was detected
from the client (ctl00$contentPlaceHolder$ucLookup$tbxLastName="</")

在提交表单时发生。我尝试添加各种事件处理程序,例如

protected void Page_PreInit(object sender, EventArgs e){}
protected void Page_Init(object sender, EventArgs e){}
protected void Page_PreLoad(object sender, EventArgs e){}

并设置断点,但没有一个被命中,这让我相信错误只发生在客户端。

如何调试此错误?是否有任何钩子可以让我在导致此问题之前拦截用户的输入并对其进行过滤或编码?

【问题讨论】:

  • 如果它的 javascript 错误,然后尝试在 firefox 浏览器中使用 firebug 来调试 javascript,或者如果它在 Internet Explorer 中,在设置 -> 高级下,取消选中禁用 javascript 调试选项。您应该在 javascript 中遇到它抛出的错误。
  • 谢谢。使用 firebug,错误是:从客户端检测到潜在危险的 Request.Form 值 (ctl00$contentPlaceHolder$ucLookup$tbxLastName="</")。关于在客户端尝试验证之前如何拦截输入的任何想法?具体来说,我宁愿不在我的所有页面上设置 validateRequest="false" ...

标签: javascript asp.net client-side validation


【解决方案1】:

【讨论】:

    【解决方案2】:

    对于这个潜在危险的错误,您可以执行以下操作,看看是否有帮助 -

    在&lt;system.web&gt; 部分内添加行:&lt;pages validateRequest="false" /&gt;

    【讨论】:

    • 根据上面的评论,有没有办法在不设置 validateRequest="false" 的情况下做到这一点?在验证发生之前是否有一个我可以拦截的钩子?
    猜你喜欢
    • 1970-01-01
    • 2022-01-05
    • 2014-08-12
    • 2015-06-05
    • 1970-01-01
    • 1970-01-01
    • 2021-03-02
    • 2016-07-30
    • 1970-01-01
    相关资源
    最近更新 更多