+ -
当前位置:首页 → 问答吧 → jQuery中post的问题

jQuery中post的问题

时间:2011-02-27

来源:互联网

一个文本域<textarea id="code_code" name="code_code"></textarea>

提交的时候,用jQuery的post函数
$.post("uploadcode.aspx", {codetext:$("#code_code").val() }, back);

当文本域中出现 <a 等字样的时候,就无法执行成功,服务器端收不到任和消息。
我测试了很多。。单引号双引号斜杠啥的都行。。。就是一个小于号再加一个字母就不行。。


求讲解

作者: dingyaguang117   发布时间: 2011-02-27

对<进行转义:
1.
$.post("uploadcode.aspx", {codetext:escape($("#code_code").val()) }, back);
这个影响较多,不只是<,如果试用没问题可以用,有问题就用下面方法

2.
$.post("uploadcode.aspx", {codetext:$("#code_code").val().replace("<","&lt;") }, back);

作者: theforever   发布时间: 2011-02-27

引用 1 楼 theforever 的回复:

对<进行转义:
1.
$.post("uploadcode.aspx", {codetext:escape($("#code_code").val()) }, back);
这个影响较多,不只是<,如果试用没问题可以用,有问题就用下面方法

2.
$.post("uploadcode.aspx", {codetext:$("#code_code").val().replace("<"……


恩恩 用escape这样确实可以了~但是又出现了一个新的问题。。我提交的是C代码~
在服务器端decode之后换行都没了。。怎么才能使代码原样提交到服务器呢?
例如
C/C++ code

#include <stdio.h>
#include <string.h>
int M,N;
int bingcha[2001];
int rev_sex[2001];
void init()
{
    int j;
    for (j=0;j<=N;++j)
    {
            bingcha[j]=j;
            rev_sex[j]=0;
    }
}

作者: dingyaguang117   发布时间: 2011-02-27

引用 1 楼 theforever 的回复:

对<进行转义:
1.
$.post("uploadcode.aspx", {codetext:escape($("#code_code").val()) }, back);
这个影响较多,不只是<,如果试用没问题可以用,有问题就用下面方法

2.
$.post("uploadcode.aspx", {codetext:$("#code_code").val().replace("<"……


请问
1.是不是只是jQuery的post才会出现这种问题?
如果直接手动写 ajax post,会不会还是这样?

2.用表单的post方法,需要转义么?

3.是不是只有 小于号加字母 这一种情况需要转义?

作者: dingyaguang117   发布时间: 2011-02-27

uploadcode.aspx里面写
 <%@ Page validateRequest="false" %>

作者: net_lover   发布时间: 2011-02-27

如果是asp.net4还需要加入
<httpRuntime requestValidationMode=”2.0″ />

作者: net_lover   发布时间: 2011-02-27

引用 5 楼 net_lover 的回复:

如果是asp.net4还需要加入
<httpRuntime requestValidationMode=”2.0″ />


VS提示不支持这个。。

作者: dingyaguang117   发布时间: 2011-02-27