我使用jQuery调用ajax到ASP.NET页面,作为我的ajax服务器页面,以保存在查询字符串中发送给它的数据。在ASP.NET页面,当我试图读取querystring我得到这个错误:
A potentially dangerous Request.QueryString value was detected from the client...
我在我的页面中设置ValidateRequest =“false”。不要为所有页面设置它。所以在页面级别而不是配置级别:
var content = "<h3>Sample header</h3><p>sample para</p>" content = encodeURIComponent(content); var url = "../Lib/ajaxhandler.aspx?mode=savecontent&page=home<xt=" + content; $.post(url,function (data) { //check return value and do something });
和在我的asp.net页面:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ajaxhandler.aspx.cs" ValidateRequest="false" Inherits="MyProject.Lib.ajaxhandler" %>
但是当我发送纯文本而不是html标记,它工作正常。
解决方法
如果这是ASP.NET 4,有一个
breaking change与ValidateRequest。有关requestValidationMode的更多信息,请参阅
this StackOverflow question。