jQuery中post的问题
一个文本域<textarea id="code_code" name="code_code"></textarea>
提交的时候,用jQuery的post函数
$.post("uploadcode.aspx", {codetext:$("#code_code").val() }, back);
当文本域中出现 <a 等字样的时候,就无法执行成功,服务器端收不到任和消息。
我测试了很多。。单引号双引号斜杠啥的都行。。。就是一个小于号再加一个字母就不行。。
求讲解
------解决方案--------------------对<进行转义:
1.
$.post("uploadcode.aspx", {codetext:escape($("#code_code").val()) }, back);
这个影响较多,不只是<,如果试用没问题可以用,有问题就用下面方法
2.
$.post("uploadcode.aspx", {codetext:$("#code_code").val().replace("<","<") }, back);
------解决方案--------------------如果是asp.net4还需要加入
<httpRuntime requestValidationMode=”2.0″ />
------解决方案--------------------如果VALUE里含有回车换行,escape会保留它们,变成%0D%0A.
你后台decode可能用得不对,所以解码的结果就有问题了。
可以利用ASP的混合编程特点,用JS语法写个函数,调用与escape配合的unescape,然后调用这个函数。系铃者去解铃,就不会有错了。
<script language = javascript runat=server>
function Unc(strCode)
{
return unescape(strCode);
}
</script>
<%
接收的变量 = Unc(接收的变量)
%>
------解决方案--------------------换行用正则来解决,换行符用文本‘\n’代替
var reg = new RegExp("\n","g");
var ncontent = requestValue.replace(reg,"\\n");