asp.net ajax ValidateRequest
昨天初学jquery,在asp.net2.0中一个测试,把客户端动态生成的table和里面的内容(table.outerHTML)保存到数据库
var myJQ=jQuery.noConflict();
第一次:
myJQ.post("ajaxpost.aspx",{n:myJQ("#tab").html()},function(res){
///


});
///



});
我用ajax(jquery.1.2.6.js)向服务器提交数据,点击提交按钮没有反应,把VS打开调试发现请求时page_load事件都没有进。
开始用get提交还是没有反应。以为是提交的内容过长,后改用post提交(如上),还是没有反应
改成下面这样提交
第二次:
myJQ.post("ajaxpost.aspx",{n:"<table>"},function(res){
///


});
///



});
这次提交的内容够短了吧,点击提交还是没有反应,郁闷
第三次:
myJQ.post("ajaxpost.aspx",{n:"table"},function(res){
///


});
///



});
第三次把提交的内容中的 "<>" 去掉,居然就可以正常提交了,
后来群里的一位朋友 提醒了我由于asp.net2.0中的安全限制
对请求进行了验证,把ValidateRequest=false。就可以提交。
下面是msdn上的原文:
ValidateRequest
指示是否应发生请求验证。如果为 true,请求验证将根据具有潜在危险的值的硬编码列表检查所有输入数据。如果出现匹配情况,将引发 HttpRequestValidationException 异常。默认值为 true。
该功能在计算机配置文件 (Machine.config) 中启用。可以在应用程序配置文件 (Web.config) 中或在页上将该属性设置为 false 来禁用该功能。

