首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Ajax >

jQuery中post的有关问题

2013-07-04 
jQuery中post的问题一个文本域textareaidcode_code namecode_code/textarea提交的时候,用jQuery

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("<","&lt;") }, 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");

热点排行